<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1' />
    <meta name="renderer" content="webkit">
    <meta http-equiv="Expires" content="0">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Cache-control" content="no-cache">
    <meta http-equiv="Cache" content="no-cache">
    <title>Apipost接口文档</title>
    <link href="https://img.cdn.apipost.cn/docs/css7/style.css?20220909" rel="stylesheet">
    <link href="https://img.cdn.apipost.cn/docs/css/font-awesome-4.7.0/css/font-awesome.min.css?20220909" rel="stylesheet">
    <link href="https://img.cdn.apipost.cn/docs/css7/github.css?20220909" rel="stylesheet">
    <link rel="stylesheet" href="https://img.cdn.apipost.cn/docs/css7/content-v7.css?20220909">
    <link href="https://img.cdn.apipost.cn/docs/css7/json-viewer.css?20220909" rel="stylesheet">
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js/jquery-3.4.1.min.js?20220909"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js7/marked.min.js?20220909"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js7/template-web.js?20220909"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js7/highlight.js?20220909"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js7/clipboard.min.js?20220909"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js7/crypto-js.min.js?20220909" charset="utf-8"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js/json5.min.js?20220909"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js/dayjs.min.js?20220909"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js/url-join.js?20220909"></script>
    <!-- <script type="text/javascript" src="./js/enc.min.js"></script> -->
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js/json-viewer.min.js?20220909"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js/lodash.min.js?20220909"></script>
    <script type="text/javascript">
        consoleLog = console.log; // 重写 consoleLog
        $(function () {

        })
    </script>
</head>

<body>
<div class="apipost-doc-body">
    <div class="apipost-doc-body-main">
        <div class="apipost-doc-body-nav">
            <div class="logo">
                <a href="https://www.apipost.cn/"><img class="project-logo" src="https://img.cdn.apipost.cn/docs/images7/logo.svg" /></a>
            </div>
            <div class="apipost-doc-body-nav-search">
                <img src="https://img.cdn.apipost.cn/docs/images7/search-icon.svg">
                <input type="text" name="search-input" placeholder="搜索目录、接口。支持 名称、URL、Method 搜索">
            </div>
            <div class="apipost-doc-body-nav-title"> 项目名 </div>
            <div class="apipost-doc-body-nav-list">
                <ul>
                    <li data-type="global" data-parent_id="0" data-target_id="001" data-indent="0"
                        class="global active">
                        <a class="load-data-btn" href="javascript:;" data-type="global" data-parent_id="0"
                           data-target_id="001" data-indent="0">全局公共参数</a>
                    </li>
                </ul>
                <ul class="apipost-left-nav-template">
                    <script type="text/html" id="apipost-left-nav-template-tpl">
                        {{if _.isArray(list)}}
                        {{each list item}}
                        {{if !item.indent}}
                        {{set indent = item.indent = 0}}
                        {{/if}}
                        <li data-type="{{item.target_type}}" data-parent_id="{{item.parent_id}}" data-target_id="{{item.target_id}}" data-indent="{{item.indent}}" class="{{item.target_type}} {{if target_id == item.target_id}}active{{/if}} {{if item.indent != 0}}is-hidden{{/if}}" style="padding-left: {{item.indent?item.indent:0}}em;">
                            {{if item.target_type == 'folder' || item.example_type == 'folder'}}
                            <a class="load-data-btn" href="javascript:;" data-type="{{item.target_type}}" data-parent_id="{{item.parent_id}}" data-target_id="{{item.local_target_id}}" data-indent="{{item.indent}}"><i class="fa fa-caret-down"></i>{{item.name}}</a>
                            {{else if item.target_type == 'websocket' || item.example_type == 'websocket'}}
                            <a class="load-data-btn" href="javascript:;" data-type="{{item.target_type}}" data-parent_id="{{item.parent_id}}" data-target_id="{{item.local_target_id}}" data-indent="{{item.indent}}"><em class="method websocket">WS</em><span>{{item.name}}</span></a>
                            {{else if item.target_type == 'doc' || item.example_type == 'doc'}}
                            <a class="load-data-btn" href="javascript:;" data-type="{{item.target_type}}" data-parent_id="{{item.parent_id}}" data-target_id="{{item.local_target_id}}" data-indent="{{item.indent}}"><em class="method doc">文本</em><span>{{item.name}}</span></a>
                            {{else if item.target_type == 'grpc' || item.example_type == 'grpc'}}
                            <a class="load-data-btn" href="javascript:;" data-type="{{item.target_type}}" data-parent_id="{{item.parent_id}}" data-target_id="{{item.local_target_id}}" data-indent="{{item.indent}}"><em class="method grpc">GRPC</em><span>{{item.name}}</span></a>
                            {{else}}
                            <a class="load-data-btn" href="javascript:;" data-type="{{item.target_type}}" data-parent_id="{{item.parent_id}}" data-target_id="{{item.local_target_id}}" data-indent="{{item.indent}}"><em class="method {{item.method}}">{{item.method}}</em><span>{{item.name}}</span></a>
                            {{/if}}
                            {{if item.target_type != 'folder' && item.color}}
                            <span style="margin-left:5px;display:inline-block;width:6px;height:6px;border-radius:50%;background-color: {{item.color}};"></span>



                            {{/if}}
                            {{if item.target_type == 'example'}}
                            <svg style="margin-left:5px;" width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
                                <path d="M4.91033 6.68207H3.30033C3.09013 6.68207 2.94513 6.4768 3.01993 6.28529L4.61973 2.18849C4.64137 2.13306 4.67976 2.08536 4.72982 2.0517C4.77987 2.01804 4.83923 2.00001 4.90003 2H7.59962C7.81262 2 7.95782 2.21054 7.87742 2.40303L6.94592 4.63367H8.69951C8.95741 4.63367 9.09501 4.93026 8.92491 5.11933L4.62553 9.89887C4.41653 10.1313 4.02903 9.92989 4.11013 9.63106L4.91033 6.68207Z" fill="#FFC01E"/>
                            </svg>
                            {{/if}}
                        </li>
                        {{if _.isArray(item.children)}}
                        {{each item.children as childrenItem key}}
                        {{if item.children[key].indent}}
                        {{set indent = item.children[key].indent = item.children[key].indent+2}}
                        {{else}}
                        {{set indent = item.children[key].indent = item.indent + 2}}
                        {{/if}}
                        {{/each}}

                        {{set _recursiveList ={list:item.children}; }}
                        {{include 'apipost-left-nav-template-tpl' _recursiveList}}
                        {{/if}}
                        {{/each}}
                        {{/if}}
                    </script>
                </ul>
            </div>
            <div class="apipost-doc-body-nav-drag-bar"></div>
        </div>
        <div class="apipost-doc-body-content">
            <div class="apipost-doc-wrap">
                <script type="text/html" id="apipost-doc-wrap-tpl">
                    <div class="apipost-doc-wrap-title">
                        <h2 class="title" data-text="{{data.name}}" id="{{data.name}}">
                            <div class="mobile-nav-toggle-btn">
                                <a href="javascript:;" class="mobile-nav-toggle-link-btn"><i class="fa fa-reorder"></i></a>
                            </div>
                            <div class="title-text">{{data.name}}</div>
                            {{if data.target_type == 'api' || data.example_type == 'api'}}
                            <button type="button" class="copy-clipboard" data-clipboard-text="{{JSON.stringify(data.copyData)}}"><i class="fa fa-copy"></i> 复制接口 </button>
                            {{/if}}
                            {{if data.target_type == 'api' || data.target_type == 'grpc' || data.target_type == 'websocket' || data.example_type == 'api' || data.example_type == 'grpc' || data.example_type == 'websocket'}}
                            <a type="button" class="copy-clipboard" data-clipboard-text="{{JSON.stringify(data)}}" href="https://v7.apipost.cn/#/apis/run?target_id={{data.target_id}}" target="_blank">去调试</a>
                            {{/if}}
                        </h2>
                    </div>
                    <div class="apipost-doc-wrap-desc">
                        <!-- 创建人：哈利厄 最后更新：哈利厄 &nbsp;&nbsp; -->
                        创建时间：{{data.format_create_dtime}} &nbsp;&nbsp;更新时间：{{data.format_update_dtime}}
                    </div>
                    {{if _.has(data, 'request.description')}}
                    <div class="apipost-doc-wrap-para-markdown">
                        <div class="markdown-section">{{@marked(data.request.description)}}</div>
                    </div>
                    {{/if}}
                    {{if data.target_type == 'grpc' || data.example_type == 'grpc'}}
                    <h3 class="apipost-doc-wrap-para-title" data-text="基本信息" id="基本信息">
                        <i class="fa fa-wpforms"></i>
                        <span>基本信息</span>
                    </h3>
                    <ul class="apipost-doc-wrap-base-para">
                        {{if _.has(data, 'formatMark') && _.isObject(data.formatMark)}}
                        <li><span>接口状态： </span><span style="color: {{data.formatMark.color}};">{{data.formatMark.name}}</span> </li>
                        {{/if}}
                    </ul>
                    {{if _.has(data, 'protos') && _.isObject(data.protos) && Object.values(data.protos).length > 0}}
                    <h3 class="apipost-doc-wrap-para-title" data-text="方法列表" id="方法列表">
                        <i class="fa fa-wpforms"></i>
                        <span>方法列表</span>
                    </h3>
                    {{each data.protos item key}}
                    {{if _.has(item, 'services') && _.isObject(item.services) && !_.isEmpty(item.services)}}
                    <h4 class="apipost-doc-wrap-para-title" data-text="{{key}}" id="{{key}}">
                        <span>{{key}}</span>
                    </h4>
                    <div class="apipost-doc-paras" for-id="{{key}}">
                        {{each item.services service namespace}}
                        {{if _.isObject(service)}}
                        {{each service method methodName}}
                        <h5 data-text="{{namespace}}/{{methodName}}" id="{{namespace}}/{{methodName}}"><a name="{{key}}/{{namespace}}/{{methodName}}">[method]</a> {{key}}/{{namespace}}/{{methodName}}</h5>
                        <ul class="apipost-doc-wrap-base-para">
                            <li><span>方法名： </span><span><i class="copy-clipboard"  data-clipboard-text="{{methodName}}">{{methodName}}</i></span> </li>
                            <li><span>服务地址： </span><span><i class="copy-clipboard"  data-clipboard-text="{{method.url}}">{{method.url}}</i></span> </li>
                        </ul>
                        {{if _.has(method, 'request.body.raw') && method.request.body.raw != ''}}
                        <h6 data-text="请求参数" id="请求参数">请求参数</h6>
                        <div class="apipost-raw-json request-body-json-view">
                            <button type="button" class="copy-clipboard" data-clipboard-text="{{method.request.body.raw}}"><i class="fa fa-clipboard"></i>复制</button>
                            <input type="hidden" id="request-body-raw-editor-input-{{methodName}}" value='{{method.request.body.raw}}'>
                            <pre class="request-body-raw-editor-json" id="request-body-raw-editor-json-{{methodName}}"><code class="json">{{method.request.body.raw}}</code></pre>
                        </div>
                        {{if _.has(method, 'request.body.parameter') && _.isArray(method.request.body.parameter) && method.request.body.parameter.length > 0}}
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>
                                <th>是否必填</th>
                                <th>参数类型</th>
                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each method.request.body.parameter item}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td style="position: relative;">
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    <pre>{{item.value}}</pre>
                                    {{/if}}
                                </td>
                                <td>{{(item.not_null >0) ? '是' : '否'}}</td>
                                <td>{{item.field_type}}</td>
                                <td>
                                    <pre>{{item.description}}</pre>
                                </td>
                            </tr>
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{/if}}
                        {{if _.has(method, 'response') && _.isObject(method.response) && !_.isEmpty(method.response)}}
                        {{each method.response response name}}
                        {{if response.raw != ''}}
                        <h6 data-text="{{name == 'success' ? '成功响应示例':'错误响应示例'}}" id="{{name == 'success' ? '成功响应示例':'错误响应示例'}}">{{name == 'success' ? '成功响应示例':'错误响应示例'}}</h6>
                        <div class="apipost-raw-json response-body-json-view">
                            <button type="button" class="copy-clipboard" data-clipboard-text="{{response.raw}}"><i class="fa fa-clipboard"></i>复制</button>
                            <input type="hidden" id="response-body-raw-editor-input-{{name}}" value='{{response.raw}}'>
                            <pre class="request-body-raw-editor-json" id="response-body-raw-editor-json-{{name}}"><code class="json">{{response.raw}}</code></pre>
                        </div>
                        {{if _.has(response, 'parameter') && _.isArray(response.parameter) && response.parameter.length > 0}}
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>
                                <th>是否必填</th>
                                <th>参数类型</th>
                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each response.parameter item}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td>
                                    <pre>{{item.value}}</pre>
                                </td>
                                <td>{{(item.not_null >0) ? '是' : '否'}}</td>
                                <td>{{item.field_type}}</td>
                                <td>
                                    <pre>{{item.description}}</pre>
                                </td>
                            </tr>
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{/if}}
                        {{/each}}
                        {{/if}}
                        <hr>
                        {{/each}}
                        {{/if}}
                        {{/each}}
                    </div>
                    {{/if}}
                    {{/each}}
                    {{/if}}
                    {{/if}}
                    {{if data.target_type == 'folder'}}
                    <h3 class="apipost-doc-wrap-para-title" data-text="目录参数" id="目录参数">
                        <i class="fa fa-wpforms"></i>
                        <span>目录参数</span>
                    </h3>
                    <div class="apipost-doc-paras" for-id="目录参数">
                        {{if _.has(data, 'request.header') && _.isArray(data.request.header) && data.request.header.length > 0}}
                        <h4 data-text="Header 请求参数" id="Header 请求参数">Header 请求参数</h4>
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>
                                <th>是否必填</th>
                                <th>参数类型</th>
                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each data.request.header item}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td style="position: relative;">
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    <pre>{{item.value}}</pre>
                                    {{/if}}
                                </td>
                                <td>{{(item.not_null >0) ? '是' : '否'}}</td>
                                <td>{{item.field_type}}</td>
                                <td>
                                    <pre>{{item.description}}</pre>
                                </td>
                            </tr>
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{if _.has(data, 'request.query') && _.isArray(data.request.query) && data.request.query.length > 0}}
                        <h4 data-text="Query 请求参数" id="Query 请求参数">Query 请求参数</h4>
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>
                                <th>是否必填</th>
                                <th>参数类型</th>
                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each data.request.query item}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td style="position: relative;">
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    <pre>{{item.value}}</pre>
                                    {{/if}}
                                </td>
                                <td>{{(item.not_null >0) ? '是' : '否'}}</td>
                                <td>{{item.field_type}}</td>
                                <td>
                                    <pre>{{item.description}}</pre>
                                </td>
                            </tr>
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{if _.has(data, 'request.body') && _.isArray(data.request.body) && data.request.body.length > 0}}
                        <h4 data-text="Body 请求参数" id="Body 请求参数">Body 请求参数</h4>
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>
                                <th>是否必填</th>
                                <th>参数类型</th>
                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each data.request.body item}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td style="position: relative;">
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    <pre>{{item.type == 'File' ? '[文件路径]':item.value}}</pre>
                                    {{/if}}
                                </td>
                                <td>{{(item.not_null >0) ? '是' : '否'}}</td>
                                <td>{{item.type == 'File' ? '[文件类型]':item.field_type}}</td>
                                <td>
                                    <pre>{{item.description}}</pre>
                                </td>
                            </tr>
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{if _.has(data, 'request.authType')}}
                        <h4 data-text="认证方式" id="认证方式">认证方式</h4>
                        <ul class="apipost-doc-wrap-base-para">
                            <li>{{data.request.authType}}</li>
                        </ul>
                        {{/if}}
                    </div>
                    {{/if}}
                    {{if data.target_type == 'global'}}
                    <div class="apipost-global-tips">
                        说明：全局公共参数是针对项目而言的，所有请求的 HTTP 类型的接口都需要携带此参数。
                    </div>
                    <h3 data-text="全局公共参数" id="全局公共参数" class="apipost-doc-wrap-para-title">
                        <i class="fa fa-wpforms"></i>
                        <span>全局公共参数</span>
                    </h3>
                    <div class="apipost-doc-paras" for-id="全局公共参数">
                        {{if _.has(data, 'request.header') && _.isArray(data.request.header) && data.request.header.length > 0}}
                        <h4 data-text="Header 请求参数" id="Header 请求参数" >Header 请求参数</h4>
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>


                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each data.request.header item}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td style="position: relative;">
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    <pre>{{item.value}}</pre>
                                    {{/if}}
                                </td>


                                <td>
                                    <pre>{{item.description}}</pre>
                                </td>
                            </tr>
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{if _.has(data, 'request.query') && _.isArray(data.request.query) && data.request.query.length > 0}}
                        <h4 data-text="Query 请求参数" id="Query 请求参数">Query 请求参数</h4>
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>


                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each data.request.query item}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td style="position: relative;">
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    <pre>{{item.value}}</pre>
                                    {{/if}}
                                </td>


                                <td>
                                    <pre>{{item.description}}</pre>
                                </td>
                            </tr>
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{if _.has(data, 'request.body') && _.isArray(data.request.body) && data.request.body.length > 0}}
                        <h4 data-text="Body 请求参数" id="Body 请求参数">Body 请求参数</h4>
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>


                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each data.request.body item}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td style="position: relative;">
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    <pre>{{item.type == 'File' ? '[文件路径]':item.value}}</pre>
                                    {{/if}}
                                </td>


                                <td>
                                    <pre>{{item.description}}</pre>
                                </td>
                            </tr>
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{if _.has(data, 'script.auth.type')}}
                        <h4 data-text="认证方式" id="认证方式">认证方式</h4>
                        <ul class="apipost-doc-wrap-base-para">
                            <li>{{data.script.auth.type}}</li>
                        </ul>
                        {{/if}}
                    </div>
                    {{/if}}
                    {{if data.target_type == 'websocket' || data.example_type == 'websocket'}}
                    <h3 data-text="基本信息" id="基本信息" class="apipost-doc-wrap-para-title">
                        <i class="fa fa-wpforms"></i>
                        <span>基本信息</span>
                    </h3>
                    <ul class="apipost-doc-wrap-base-para">
                        {{if _.has(data, 'formatMark') && _.isObject(data.formatMark)}}
                        <li><span>接口状态： </span><span style="color: {{data.formatMark.color}};">{{data.formatMark.name}}</span> </li>
                        {{/if}}
                        <li><span>接口URL： </span><span><em class="method {{data.method}}">{{data.method}}</em>
                                <i class="copy-clipboard"  data-clipboard-text="{{data.url}}">{{data.url}}</i></span> </li>
                    </ul>
                    {{/if}}
                    {{if data.target_type == 'api' || data.example_type == 'api'}}
                    <h3 data-text="基本信息" id="基本信息" class="apipost-doc-wrap-para-title">
                        <i class="fa fa-wpforms"></i>
                        <span>基本信息</span>
                    </h3>
                    <ul class="apipost-doc-wrap-base-para">
                        {{if _.has(data, 'formatMark') && _.isObject(data.formatMark)}}
                        <li><span>接口状态： </span><span style="color: {{data.formatMark.color}};">{{data.formatMark.name}}</span> </li>
                        {{/if}}
                        <li><span>接口URL： </span><span><em class="method {{data.method}}">{{data.method}}</em>
                                <i class="copy-clipboard"  data-clipboard-text="{{data.url}}">{{data.url}}</i></span> </li>
                        {{if data.mock_url != ''}}
                        <li><span>本地 Mock： </span><span><i class="copy-clipboard"  data-clipboard-text="{{urlJoin('http://127.0.0.1:10393/mock/',data.project_id, data.mock_url,'?apipost_id='+data.target_id.toString().substr(0,6))}}">{{urlJoin('http://127.0.0.1:10393/mock/',data.project_id, data.mock_url,'?apipost_id='+data.target_id.toString().substr(0,6))}}</i><br><a href="https://www.apipost.cn/download.html" target="_blank">需安装 Apipost v7 客户端</a> </span> </li>
                        {{if data.enable_server_mock > 0}}
                        <li><span>云端 Mock： </span><span><i class="copy-clipboard"  data-clipboard-text="{{urlJoin('https://console-mock.apipost.cn/mock/',data.project_id, data.mock_url,'?apipost_id='+data.target_id.toString().substr(0,6))}}">{{urlJoin('https://console-mock.apipost.cn/mock/',data.project_id, data.mock_url,'?apipost_id='+data.target_id.toString().substr(0,6))}}</i></span> </li>
                        {{/if}}
                        {{/if}}
                        {{if _.has(data, 'request.body.formatMode')}}
                        <li><span>Content-Type：</span><span><i class="copy-clipboard" data-clipboard-text="{{data.request.body.formatMode}}">{{data.request.body.formatMode}}</i></span></li>
                        {{/if}}
                        {{if _.has(data, 'request.authType')}}
                        <li><span>认证方式：</span><span><i class="copy-clipboard" data-clipboard-text="{{data.request.authType}}">{{data.request.authType}}</i></span></li>
                        {{/if}}
                    </ul>
                    <h3 data-text="请求参数" id="请求参数" class="apipost-doc-wrap-para-title">
                        <i class="fa fa-wpforms"></i>
                        <span>请求参数</span>
                    </h3>
                    <div class="apipost-doc-paras" for-id="请求参数">
                        {{if _.has(data, 'request.header.parameter') && _.isArray(data.request.header.parameter) && data.request.header.parameter.length > 0}}
                        <h4 data-text="Header 请求参数" id="Header 请求参数" >Header 请求参数</h4>
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>
                                <th>是否必填</th>
                                <th>参数类型</th>
                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each data.request.header.parameter item}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td style="position: relative;">
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    <pre>{{item.value}}</pre>
                                    {{/if}}
                                </td>
                                <td>{{(item.not_null >0) ? '是' : '否'}}</td>
                                <td>{{item.field_type}}</td>
                                <td>
                                    <pre>{{item.description}}</pre>
                                </td>
                            </tr>
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{if _.has(data, 'request.query.parameter') && _.isArray(data.request.query.parameter) && data.request.query.parameter.length > 0}}
                        <h4 data-text="Query 请求参数" id="Query 请求参数" >Query 请求参数</h4>
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>
                                <th>是否必填</th>
                                <th>参数类型</th>
                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each data.request.query.parameter item}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td style="position: relative;">
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    <pre>{{item.type == 'File' ? '[文件路径]':item.value}}</pre>
                                    {{/if}}
                                </td>
                                <td>{{(item.not_null >0) ? '是' : '否'}}</td>
                                <td>{{item.field_type}}</td>
                                <td>
                                    <pre>{{item.description}}</pre>
                                </td>
                            </tr>
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{if _.has(data, 'request.resful.parameter') && _.isArray(data.request.resful.parameter) && data.request.resful.parameter.length > 0}}
                        <h4 data-text="路径参数及说明" id="路径参数及说明" >路径参数及说明</h4>
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>
                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each data.request.resful.parameter item}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td style="position: relative;">
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    <pre>{{item.type == 'File' ? '[文件路径]':item.value}}</pre>
                                    {{/if}}
                                </td>
                                <td>
                                    <pre>{{item.description}}</pre>
                                </td>
                            </tr>
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{if _.has(data, 'request.body.mode') && data.request.body.mode != 'none'}}
                        <h4 data-text="Body 请求参数" id="Body 请求参数" >Body 请求参数</h4>
                        {{if data.request.body.mode == 'form-data' || data.request.body.mode == 'urlencoded'}}
                        {{if _.has(data, 'request.body.parameter') && _.isArray(data.request.body.parameter) && data.request.body.parameter.length > 0}}
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>
                                <th>是否必填</th>
                                <th>参数类型</th>
                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each data.request.body.parameter item}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td style="position: relative;">
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    <pre>{{item.type == 'File' ? '[文件路径]':item.value}}</pre>
                                    {{/if}}
                                </td>
                                <td>{{(item.not_null >0) ? '是' : '否'}}</td>
                                <td>{{item.type == 'File' ? '[文件类型]':item.field_type}}</td>
                                <td>
                                    <pre>{{item.description}}</pre>
                                </td>
                            </tr>
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{else}}
                        {{if data.request.body.raw != ''}}
                        <div class="apipost-raw-json request-body-json-view">
                            <button type="button" class="copy-clipboard" data-clipboard-text="{{data.request.body.raw}}"><i class="fa fa-clipboard"></i>复制</button>
                            <input type="hidden" id="request-body-raw-editor-input" value='{{data.request.body.raw}}'>
                            <pre id="request-body-raw-editor-json"><code class="json">{{data.request.body.raw}}</code></pre>
                        </div>
                        {{if _.has(data, 'request.body.raw_para') && _.isArray(data.request.body.raw_para) && data.request.body.raw_para.length > 0}}
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>
                                <th>是否必填</th>
                                <th>参数类型</th>
                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each data.request.body.raw_para item}}
                            {{if item.key != ''}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td style="position: relative;">
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    <pre>{{item.value}}</pre>
                                    {{/if}}
                                </td>
                                <td>{{(item.not_null >0) ? '是' : '否'}}</td>
                                <td>{{item.field_type}}</td>
                                <td>
                                    <pre>{{item.description}}</pre>
                                </td>
                            </tr>
                            {{/if}}
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{/if}}
                        {{/if}}
                        {{/if}}
                    </div>
                    {{if _.has(data, 'response') && _.isObject(data.response) && Object.values(data.response).length > 0}}
                    <h3 data-text="响应示例" id="响应示例" class="apipost-doc-wrap-para-title">
                        <i class="fa fa-wpforms"></i>
                        <span>响应示例</span>
                    </h3>
                    <div class="apipost-doc-paras" for-id="响应示例">
                        {{each data.response item key}}
                        {{if _.has(item, 'expect.name') && item.raw != ''}}
                        <h4 data-text="{{item.expect.name}}（{{item.expect.code}}）" id="{{item.expect.name}}（{{item.expect.code}}）">{{item.expect.name}}（{{item.expect.code}}）</h4>
                        <div data-type="{{key}}" class="apipost-raw-json response-raw-json-view">
                            <button type="button" class="copy-clipboard" data-clipboard-text="{{item.raw}}"><i class="fa fa-clipboard"></i>复制</button>
                            <input type="hidden" id="response-raw-{{key}}-json-input" value='{{item.raw}}'>
                            <pre id="response-raw-{{key}}-json"><code class="json">{{item.raw}}</code></pre>
                        </div>
                        {{if _.has(item, 'parameter') && _.isArray(item.parameter) && item.parameter.length > 0}}
                        <table>
                            <thead>
                            <tr>
                                <th>参数名</th>
                                <th>参数值</th>
                                <!-- <th>是否必填</th> -->
                                <th>参数类型</th>
                                <th>描述说明</th>
                            </tr>
                            </thead>
                            <tbody>
                            {{each item.parameter item}}
                            {{if item.key != ''}}
                            <tr>
                                <td><i class="copy-clipboard"  data-clipboard-text="{{item.key}}">{{item.key}}</i></td>
                                <td>
                                    <pre>{{item.value}}</pre>
                                </td>
                                <!-- <td>{{(item.not_null >0) ? '是' : '否'}}</td> -->
                                <td>{{item.field_type}}</td>
                                <td>
                                    <pre>{{@replaceOperatorSymbol(item.description)}}</pre>
                                </td>
                            </tr>
                            {{/if}}
                            {{/each}}
                            </tbody>
                        </table>
                        {{/if}}
                        {{/if}}
                        {{/each}}
                    </div>
                    {{/if}}
                    {{/if}}
                    <footer> 本文档由 <a href="https://www.apipost.cn/" target="_blank">Apipost 接口管理工具 （https://www.apipost.cn）</a>
                        生成 </footer>
                </script>
            </div>
            <div class="apipost-float-navs">
                <h2>内容导航</h2>
                <ul class="apipost-float-nav-template">
                    <script type="text/html" id="apipost-float-nav-template-tpl">
                        {{if list.length > 0}}
                        {{each list item i}}
                        <li style="text-indent: {{item.indent*16}}px;" {{if i == 0}}class="active"{{/if}} data-id="{{item.id}}"><a href="#{{item.id}}">{{item.text}}</a></li>
                        {{/each}}
                        {{else}}
                        <li style="text-align: center;justify-content: center;">暂无导航数据</li>
                        {{/if}}
                    </script>
                </ul>
            </div>
        </div>
    </div>
</div>
<script type="text/javascript">
    // 给 arttemplate 注入新函数
    template.defaults.imports.JSON = JSON;
    template.defaults.imports.urlJoin = urlJoin;
    template.defaults.imports._ = _;
    template.defaults.imports.marked = function (md) {
        marked.setOptions({
            renderer: new marked.Renderer(),
            highlight(code) {
                return hljs.highlight('javascript', code).value;
            },
            breaks: true,
            sanitize: true,
        });
        return marked.parse(md).replace(/<pre>/g, "<pre class='hljs javascript'>");
    };
    template.defaults.imports.Object = Object;
    template.defaults.imports.keyFormat = function (params) {
        const arr = params.split('.');
        let str = '';
        for (let i = 0; i < arr.length - 1; i++) {
            str += `<span style="color:#999">${arr[i]}.</span>`;
        }
        str += arr[arr.length - 1];
        return str;
    };
    template.defaults.imports.replaceOperatorSymbol = function (originString) {
        if (!originString || originString=='') {
            return '';
        }
        const result = originString.replace(/&([^&;]+);/g, function (matchStr, b) {
            const entity = {
                quot: '"',
                lt: '<',
                gt: '>',
                apos: "'",
                amp: '&',
                ldquo: '“',
                rdquo: '”',
            };
            const r = entity[b];
            return typeof r === 'string' ? r : matchStr;
        });
        return result;
    };
    template.defaults.imports.markForName = function (key) {
        try {
            if (apipostData.project.vars.mark.filter((it) => it.key === key)[0].name) {
                return apipostData.project.vars.mark.filter((it) => it.key === key)[0].name;
            }
            return '开发中';
        } catch (error) {
            return '开发中';
        }
    };

    // 接口排序
    function sortData(data, type) {
        data.sort((a, b) => {
            // 升序
            if (type == 'ascending') {
                if (a.sort != b.sort) {
                    return a.sort - b.sort;
                }
                return a.name.localeCompare(b.name);
            }
            // 降序
            if (type == 'descending') {
                if (a.sort != b.sort) {
                    return b.sort - a.sort;
                }
                return b.name.localeCompare(a.name);
            }
        });

        // 如果有嵌套children且children里面有数据 就递归调用排序函数
        if (_.isArray(data)) {
            data.forEach((item) => {
                if (item.children && item.children.length != 0) {
                    sortData(item.children, type);
                }
            });

            return data;
        }
        return [];
    }

    // 解析 url 并返回数组
    function GetUrlQuery(uri) {
        let url = '';
        if (typeof uri === 'undefined') {
            url = window.location.search;
        } else {
            url = `?${uri.split('?')[1]}`;
        }
        const theRequest = {};
        if (url.indexOf('?') !== -1) {
            const str = url.substr(1);
            const strs = str.split('&');
            for (let i = 0; i < strs.length; i++) {
                theRequest[strs[i].split('=')[0]] = unescape(strs[i].split('=')[1]);
            }
        }
        return theRequest;
    }

    // 获取某接口的 所有父target
    function getParentTargetIDs(collection, target_id, parent_ids = []) {
        if (_.isArray(collection)) {
            const item = _.find(collection, _.matchesProperty('target_id', target_id));

            if (item) {
                parent_ids.push(item.parent_id);
                getParentTargetIDs(collection, item.parent_id, parent_ids);
            }
        }

        return parent_ids;
    }

    // 获取某接口的 所有子target
    function getChildrenTargetIDs(collection, target_id, children_ids = []) {
        if (_.isArray(collection)) {
            collection.forEach(item => {
                if (item.parent_id == target_id) {
                    children_ids.push(item.target_id);
                    getChildrenTargetIDs(collection, item.target_id, children_ids);
                }
            })
        }

        return children_ids;
    }

    // // 获取某接口的 所有子target
    // function getChildrenTargetIDs(collection, target_id, children_ids = []) {
    //     if (_.isArray(collection)) {
    //         collection.forEach(item => {
    //             if (item.target_id == target_id) {
    //                 if (item.children && _.isArray(item.children)) {
    //                     item.children.forEach((it) => {
    //                         children_ids.push(it.target_id);
    //                         if (it.children && _.isArray(it.children)) {
    //                             getChildrenTargetIDs(it.children, it.target_id, children_ids);
    //                         }
    //                     })
    //                 }
    //             }
    //         })
    //     }
    //     return children_ids;
    // }

    // 接口数据
    let apipostData = {};

    try {
        apipostData = {"data":{"id":1225499,"local_issue_id":"52cba285ce58b8a0ad3ef8a8d8565f5b","local_target_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","project_id":3079203,"name":"仓库管理","url":"f246828ba2a0f02c","salt":"9a6784bf1fb5f1c3","password":"","env_id":"-1","create_time":1688110119,"target_id":-1,"target_type":"project","expire_days":-1,"expire_time":-1,"attribute_list":[],"env_ids":["-1"],"portrait":"https:\/\/img.cdn.apipost.cn\/user\/default_profile_photo\/Vector-5.png","nick_name":"阿尔刻","app_web_url":"https:\/\/v7-api.apipost.cn","project_name":"仓库管理","publisher":"阿尔刻","pub_name":"仓库管理","project_logo":"","project":{"vars":{"request":{"cookie":[],"header":[{"is_checked":"1","type":"Text","key":"PageIndex","value":"number","description":"分页查询的页数"},{"description":"分页查询的每页个数","field_type":"String","is_checked":1,"key":"PageSize","value":"number","not_null":1,"type":"Text"},{"description":"模糊查询的文本内容","field_type":"String","is_checked":1,"key":"InputText","value":"String","not_null":1,"type":"Text"}],"query":[],"body":[]},"script":{"pre_script":"","test":"","auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}}},"variable":[],"methods":["POST","GET","PUT","PATCH","DELETE","COPY","HEAD","OPTIONS","LINK","UNLINK","PURGE","LOCK","UNLOCK","PROPFIND","VIEW"],"mark":[{"key":"developing","name":"开发中","color":"#3A86FF","is_default":true},{"key":"complated","name":"已完成","color":"#2BA58F","is_default":true},{"key":"modifying","name":"需修改","color":"#EC4646","is_default":true}]},"code_list":[],"attribute_list":[]},"attribute_lists":[],"children":[{"local_target_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","local_parent_id":"0","name":"通用接口","method":"POST","mark":"developing","is_doc":0,"target_type":"folder","example_type":"0","project_id":3079203,"status":1,"sort":0,"create_dtime":1686194530,"update_dtime":1686194643,"local_server_id":"","target_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-08 11:22:10","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"script":{"pre_script":"","test":"","pre_script_switch":1,"test_switch":1},"request":{"description":"通用信息包含超级管理员和管理员都具备的接口","header":[],"query":[],"body":[],"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}}},"parent_id":"0","children":[{"local_target_id":"16e8add8-e774-4384-8842-b4bc4e756347","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"登录接口","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":0,"create_dtime":1686287140,"update_dtime":1686722726,"local_server_id":"","target_id":"16e8add8-e774-4384-8842-b4bc4e756347","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-09 13:05:40","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"ea85a27c-eac6-47fe-84f9-7ee6c9808437","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/AdminLogin","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n\t\"adminId\":  \"1\",\r\n\t\"adminPassword\": \"584KYs\"\r\n}","raw_para":[{"key":"adminId","value":"1","description":"工号\/手机号","not_null":1,"field_type":"String","type":"Text","is_checked":1},{"key":"adminPassword","value":"584KYs","description":"密码","not_null":1,"field_type":"String","type":"Text","is_checked":1}]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[{"description":"","field_type":"String","is_checked":1,"key":"Content-Type","value":"application\/json","not_null":1,"type":"Text","value_var":"","key_var":""}]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/AdminLogin"},"response":{"success":{"raw":"{\r\n\t\"message\": \"登陆成功\",\r\n\t\"data\": {\r\n\t\t\"adminId\": 1,\r\n\t\t\"adminName\": \"超级管理员\",\r\n\t\t\"adminPhone\": \"18565889721\",\r\n\t\t\"adminAuthority\": 1,\r\n\t\t\"adminPassword\": \"584KYs\",\r\n\t\t\"adminLeave\": 1\r\n\t},\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"[\r\n\t{\r\n\t\t\"message\": \"账号或密码不对\",\r\n\t\t\"data\": null,\r\n\t\t\"code\": 201\r\n\t},\r\n\t{\r\n\t\t\"message\": \"离职员工无法登录\",\r\n\t\t\"data\": null,\r\n\t\t\"code\": 201\r\n\t}\r\n]","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"02ce8dd9-e8be-4921-af73-c55702b4afea","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"查询所有商品分类","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":1,"create_dtime":1686557188,"update_dtime":1686704517,"local_server_id":"","target_id":"02ce8dd9-e8be-4921-af73-c55702b4afea","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-12 16:06:28","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"7f869657-9dd0-4605-b3c2-98a90b39e1b0","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/ClassificationSelectAll","description":"","body":{"mode":"json","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/ClassificationSelectAll"},"response":{"success":{"raw":"[{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": [],\r\n\t\"code\": 200\r\n},{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": [\r\n\t\t{\r\n\t\t\t\"classificationId\": 1,\r\n\t\t\t\"classificationName\": \"其他\",\r\n\t\t\t\"classificationTime\": 1686904662000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"classificationId\": 2,\r\n\t\t\t\"classificationName\": \"食物类\",\r\n\t\t\t\"classificationTime\": 1687423087000\r\n\t\t}\r\n\t],\r\n\t\"code\": 200\r\n}]","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"12d3ce2d-1dd7-432e-a2e6-7aa47fc1ddcd","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"修改密码","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":2,"create_dtime":1686550879,"update_dtime":1686550970,"local_server_id":"","target_id":"12d3ce2d-1dd7-432e-a2e6-7aa47fc1ddcd","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-12 14:21:19","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"52263bf5-a871-4b31-99ee-204acef5adc7","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/AdminPassword","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n\t\"adminId\":  \"1\",\r\n\t\"adminPassword\": \"584KYS\"\r\n}","raw_para":[{"key":"adminId","value":"1","description":"工号\/手机号","not_null":1,"field_type":"String","type":"Text","is_checked":1},{"key":"adminPassword","value":"584KYS","description":"密码","not_null":1,"field_type":"String","type":"Text","is_checked":1}]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/AdminPassword"},"response":{"success":{"raw":"{\r\n\t\"message\": \"修改成功\",\r\n\t\"data\": null,\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"新密码和旧密码相同\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n}","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"a7b28066-efe5-43fd-aa1c-465e27e6c942","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"添加入库记录","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":3,"create_dtime":1686793693,"update_dtime":1688107099,"local_server_id":"","target_id":"a7b28066-efe5-43fd-aa1c-465e27e6c942","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-15 09:48:13","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"3a602014-6970-4448-b5e9-7406fbb0d6fa","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/Storage","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"storageName\": \"测试\",\r\n    \"storageAdminId\": 3,\r\n    \"storageStashId\":1,\r\n    \"storageClassificationId\": 1,\r\n    \"storageNumber\": 24,\r\n    \"storageVolume\": 0.010,\r\n    \"storageState\": 1\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/Storage"},"response":{"success":{"raw":"","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"[\r\n\t{\r\n\t\t\"message\": \"您选择入库的仓库不存在\",\r\n\t\t\"data\": null,\r\n\t\t\"code\": 201\r\n\t},\r\n\t{\r\n\t\t\"message\": \"您选择的商品分类不存在\",\r\n\t\t\"data\": null,\r\n\t\t\"code\": 201\r\n\t},\r\n\t{\r\n\t\t\"message\": \"您所选择的现有容量无法装载货物，请选择其他仓库，或分批存入不同仓库\",\r\n\t\t\"data\": null,\r\n\t\t\"code\": 201\r\n\t}\r\n]","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"ec90a806-f2e8-4e68-8812-6fb55476ff95","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"查询所有库存分类","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":4,"create_dtime":1686899861,"update_dtime":1687669568,"local_server_id":"","target_id":"ec90a806-f2e8-4e68-8812-6fb55476ff95","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-16 15:17:41","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"37987ade-21a5-4206-84ea-5f47956a51bc","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/ProductSelectLimit","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"pageIndex\":1,\r\n    \"pageSize\":10\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/ProductSelectLimit"},"response":{"success":{"raw":"{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": {\r\n\t\t\"Total\": 4,\r\n\t\t\"Date\": [\r\n\t\t\t{\r\n\t\t\t\t\"productId\": 2,\r\n\t\t\t\t\"productName\": \"樱桃\",\r\n\t\t\t\t\"productNumber\": 1300,\r\n\t\t\t\t\"productClassificationId\": \"水果类\",\r\n\t\t\t\t\"productStash\": \"[{\\\"stashId\\\":1,\\\"stashName\\\":\\\"二号仓库\\\",\\\"stashTotalCapacity\\\":100000.0,\\\"stashCapacity\\\":0.6},{\\\"stashId\\\":4,\\\"stashName\\\":\\\"一号仓\\\",\\\"stashTotalCapacity\\\":10000.0,\\\"stashCapacity\\\":1721.344}]\",\r\n\t\t\t\t\"productTime\": 1686902695000\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"productId\": 4,\r\n\t\t\t\t\"productName\": \"草莓\",\r\n\t\t\t\t\"productNumber\": 10,\r\n\t\t\t\t\"productClassificationId\": \"电子类\",\r\n\t\t\t\t\"productStash\": \"[{\\\"stashId\\\":4,\\\"stashName\\\":\\\"一号仓\\\",\\\"stashTotalCapacity\\\":10000.0,\\\"stashCapacity\\\":1721.344}]\",\r\n\t\t\t\t\"productTime\": 1686814144000\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"productId\": 3,\r\n\t\t\t\t\"productName\": \"草莓\",\r\n\t\t\t\t\"productNumber\": 162,\r\n\t\t\t\t\"productClassificationId\": \"水果类\",\r\n\t\t\t\t\"productStash\": \"[{\\\"stashId\\\":4,\\\"stashName\\\":\\\"一号仓\\\",\\\"stashTotalCapacity\\\":10000.0,\\\"stashCapacity\\\":1721.344}]\",\r\n\t\t\t\t\"productTime\": 1686814086000\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"productId\": 1,\r\n\t\t\t\t\"productName\": \"西瓜\",\r\n\t\t\t\t\"productNumber\": 100,\r\n\t\t\t\t\"productClassificationId\": \"水果类\",\r\n\t\t\t\t\"productStash\": \"[{\\\"stashId\\\":4,\\\"stashName\\\":\\\"一号仓\\\",\\\"stashTotalCapacity\\\":10000.0,\\\"stashCapacity\\\":1721.344}]\",\r\n\t\t\t\t\"productTime\": 1686791732000\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"输入的参数有误\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n}","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"243f10d4-1f22-4e2a-bef7-0c9e6d856721","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"根据商品id查找商品","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":5,"create_dtime":1687154467,"update_dtime":1687679305,"local_server_id":"","target_id":"243f10d4-1f22-4e2a-bef7-0c9e6d856721","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-19 14:01:07","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"374fb05a-c23d-4a62-b66c-de941a256c2a","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/ProductSelectId","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"productId\":\"2\"\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/ProductSelectId"},"response":{"success":{"raw":"{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": {\r\n\t\t\"productId\": 1,\r\n\t\t\"productName\": \"西瓜\",\r\n\t\t\"productNumber\": 100,\r\n\t\t\"productClassificationId\": \"2\",\r\n\t\t\"productStash\": \"4\",\r\n\t\t\"productTime\": 1686791732000\r\n\t},\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"查询失败\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n}","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"be2f4b57-0119-4665-86eb-70f230a0114c","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"批量查询仓库","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":6,"create_dtime":1687159146,"update_dtime":1687653379,"local_server_id":"","target_id":"be2f4b57-0119-4665-86eb-70f230a0114c","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-19 15:19:06","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"c704cf22-c149-486d-88c9-dda9858c6364","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/StashSelectList","description":"","body":{"mode":"json","parameter":[],"raw":"[\"1\"]","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/StashSelectList"},"response":{"success":{"raw":"{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": [\r\n\t\t{\r\n\t\t\t\"stashId\": 1,\r\n\t\t\t\"stashName\": \"二号仓库\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 1.1\r\n\t\t}\r\n\t],\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"1ac73e6c-1351-4256-a1cb-dc0ba8231e4b","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"商品出库","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":7,"create_dtime":1687657249,"update_dtime":1688107098,"local_server_id":"","target_id":"1ac73e6c-1351-4256-a1cb-dc0ba8231e4b","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-25 09:40:49","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"91b0526f-0f37-487a-9923-aa5cfff6c5d2","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/StockRemoval","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"storageName\": \"测试\",\r\n    \"storageAdminId\": 2,\r\n    \"storageStashId\":1,\r\n    \"storageClassificationId\": 1,\r\n    \"storageNumber\": 24,\r\n    \"storageVolume\": 0.010,\r\n    \"storageProductId\":\"54445\"\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/StockRemoval"},"response":{"success":{"raw":"","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"[\r\n\t{\r\n\t\t\"message\": \"您要出库5件商品，而您要出库的仓库只有0件商品，因此无法出库\",\r\n\t\t\"data\": null,\r\n\t\t\"code\": 201\r\n\t}\r\n]","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"7513f183-2851-4314-b62e-035d201aedf5","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"根据商品id修改商品分类","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":8,"create_dtime":1687662532,"update_dtime":1687662602,"local_server_id":"","target_id":"7513f183-2851-4314-b62e-035d201aedf5","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-25 11:08:52","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"d8d382b1-4023-4976-9c8b-9e6806599911","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/productUpdateClassification","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"productClassificationId\": 1,\r\n    \"productId\":41621\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/productUpdateClassification"},"response":{"success":{"raw":"{\r\n\t\"message\": \"修改成功\",\r\n\t\"data\": null,\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"07bd07d8-f418-4b61-a9b4-59c6f8f3c270","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"查询指定商品入库\/书库记录","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":9,"create_dtime":1687675902,"update_dtime":1687679298,"local_server_id":"","target_id":"07bd07d8-f418-4b61-a9b4-59c6f8f3c270","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-25 14:51:42","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"960b22fc-0654-4ef8-8b71-53206eb46a88","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/StorageSelectId","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n       \"storageProductId\":\"87343\",\r\n       \"storageState\":2\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/StorageSelectId"},"response":{"success":{"raw":"{\r\n\t\"message\": \"查询成功\",\r\n\t\"code\": 200,\r\n\t\"data\": [\r\n\t\t{\r\n\t\t\t\"storageId\": 64,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687655748000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 65,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687655757000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 66,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687658546000,\r\n\t\t\t\"storageStashId\": 6,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 67,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687658663000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 5,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 2,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 68,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687658781000,\r\n\t\t\t\"storageStashId\": 6,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 69,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687658888000,\r\n\t\t\t\"storageStashId\": 6,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 70,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687658895000,\r\n\t\t\t\"storageStashId\": 6,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 71,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687658912000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 72,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687658918000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 2,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 73,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687658949000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 74,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687658957000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 2,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 75,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687659008000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 76,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687659012000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 2,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 77,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687659070000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 78,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687659073000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 2,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 79,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687659110000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 80,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687659754000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 1,\r\n\t\t\t\"storageState\": 2,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 81,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687659848000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 82,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687659853000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 1,\r\n\t\t\t\"storageState\": 2,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 83,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687659902000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 84,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687659905000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 1,\r\n\t\t\t\"storageState\": 2,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 85,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687659944000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 86,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687659946000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 1,\r\n\t\t\t\"storageState\": 2,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 87,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687660045000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 88,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687661958000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 2,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 89,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687662023000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 2,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 90,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687662080000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 91,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687662084000,\r\n\t\t\t\"storageStashId\": 6,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 92,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687662087000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 93,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": 2,\r\n\t\t\t\"storageTime\": 1687662099000,\r\n\t\t\t\"storageStashId\": 4,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 2,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t}\r\n\t]\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"8717e550-33fd-479d-8c6e-1c58c24e1d9a","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"根据出库\/入库id查询详情","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":10,"create_dtime":1687679273,"update_dtime":1687745698,"local_server_id":"","target_id":"8717e550-33fd-479d-8c6e-1c58c24e1d9a","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-25 15:47:53","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"64cbeb63-d7eb-4fcb-a37c-4f4cbc591107","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/StorageSelect","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"storageId\":\"70\"\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/StorageSelect"},"response":{"success":{"raw":"","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"03277e7f-d367-44ec-83cb-191af54a5440","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"商品数量大屏","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":11,"create_dtime":1687684043,"update_dtime":1687684118,"local_server_id":"","target_id":"03277e7f-d367-44ec-83cb-191af54a5440","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-25 17:07:23","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"d95040f3-7254-478c-b0e3-0a104d1cf3eb","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/StorageSelectIdEcharts","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"storageProductId\":87343\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/StorageSelectIdEcharts"},"response":{"success":{"raw":"","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"d4039ad7-9c6f-426b-a880-cf5c81f4d2aa","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"根据仓库id查询仓库内容","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":12,"create_dtime":1687691829,"update_dtime":1687745696,"local_server_id":"","target_id":"d4039ad7-9c6f-426b-a880-cf5c81f4d2aa","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-25 19:17:09","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"0eb6bfbf-370b-4689-802a-fb21b77e7aa7","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/StashId","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"stashId\":1\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/StashId"},"response":{"success":{"raw":"{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": {\r\n\t\t\"stashId\": 1,\r\n\t\t\"stashName\": \"一号仓\",\r\n\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\"stashCapacity\": 100\r\n\t},\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"输入的仓库id不存在\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n    }","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"582817ac-ee8b-4841-bbfa-b70d3fbc8ec1","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"仓库存放商品数据大屏","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":13,"create_dtime":1687740771,"update_dtime":1687745693,"local_server_id":"","target_id":"582817ac-ee8b-4841-bbfa-b70d3fbc8ec1","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-26 08:52:51","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"41e9a644-ea94-462e-9156-15119ad55da7","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/StashNumberFnProductAll","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"stashId\":1\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/StashNumberFnProductAll"},"response":{"success":{"raw":"{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": [\r\n\t\t{\r\n\t\t\t\"stashId\": 1,\r\n\t\t\t\"productId\": 41621,\r\n\t\t\t\"number\": 10,\r\n\t\t\t\"productName\": \"草莓\",\r\n\t\t\t\"productNumber\": 10,\r\n\t\t\t\"productClassificationId\": \"2\",\r\n\t\t\t\"productStash\": \"1\",\r\n\t\t\t\"productTime\": 1687662144000,\r\n\t\t\t\"productSpecification\": 10,\r\n\t\t\t\"stashName\": \"一号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 100\r\n\t\t}\r\n\t],\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"3956a42d-1524-47a6-8a02-7abc52d5d3b1","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"查询一个仓库有多少分类","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":14,"create_dtime":1687745740,"update_dtime":1688107078,"local_server_id":"","target_id":"3956a42d-1524-47a6-8a02-7abc52d5d3b1","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-26 10:15:40","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"f1f9e202-ad0c-4ab1-98b2-1ff1fbaa859d","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/StashNumberFnProductClassAll","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"stashId\":1100\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/StashNumberFnProductClassAll"},"response":{"success":{"raw":"{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": [\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 78117,\r\n\t\t\t\"number\": 10,\r\n\t\t\t\"productName\": \"樱桃\",\r\n\t\t\t\"productNumber\": 10,\r\n\t\t\t\"productClassificationId\": \"2\",\r\n\t\t\t\"productStash\": \"2\",\r\n\t\t\t\"productTime\": 1687655718000,\r\n\t\t\t\"productSpecification\": 1,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 2,\r\n\t\t\t\"classificationName\": \"水果类\",\r\n\t\t\t\"classificationTime\": 1687423087000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 52154,\r\n\t\t\t\"number\": 10,\r\n\t\t\t\"productName\": \"樱桃\",\r\n\t\t\t\"productNumber\": 10,\r\n\t\t\t\"productClassificationId\": \"2\",\r\n\t\t\t\"productStash\": \"2\",\r\n\t\t\t\"productTime\": 1687655741000,\r\n\t\t\t\"productSpecification\": 0.1,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 2,\r\n\t\t\t\"classificationName\": \"水果类\",\r\n\t\t\t\"classificationTime\": 1687423087000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 56523,\r\n\t\t\t\"number\": 10,\r\n\t\t\t\"productName\": \"樱桃\",\r\n\t\t\t\"productNumber\": 10,\r\n\t\t\t\"productClassificationId\": \"2\",\r\n\t\t\t\"productStash\": \"2\",\r\n\t\t\t\"productTime\": 1687655745000,\r\n\t\t\t\"productSpecification\": 0.01,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 2,\r\n\t\t\t\"classificationName\": \"水果类\",\r\n\t\t\t\"classificationTime\": 1687423087000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 87343,\r\n\t\t\t\"number\": 10,\r\n\t\t\t\"productName\": \"樱桃\",\r\n\t\t\t\"productNumber\": 60,\r\n\t\t\t\"productClassificationId\": \"2\",\r\n\t\t\t\"productStash\": \"2,6\",\r\n\t\t\t\"productTime\": 1687662099000,\r\n\t\t\t\"productSpecification\": 0.001,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 2,\r\n\t\t\t\"classificationName\": \"水果类\",\r\n\t\t\t\"classificationTime\": 1687423087000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 36672,\r\n\t\t\t\"number\": 20,\r\n\t\t\t\"productName\": \"西瓜\",\r\n\t\t\t\"productNumber\": 20,\r\n\t\t\t\"productClassificationId\": \"2\",\r\n\t\t\t\"productStash\": \"2\",\r\n\t\t\t\"productTime\": 1687744154000,\r\n\t\t\t\"productSpecification\": 0.001,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 2,\r\n\t\t\t\"classificationName\": \"水果类\",\r\n\t\t\t\"classificationTime\": 1687423087000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 31154,\r\n\t\t\t\"number\": 35,\r\n\t\t\t\"productName\": \"芒果\",\r\n\t\t\t\"productNumber\": 35,\r\n\t\t\t\"productClassificationId\": \"2\",\r\n\t\t\t\"productStash\": \"2\",\r\n\t\t\t\"productTime\": 1687744197000,\r\n\t\t\t\"productSpecification\": 0.01,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 2,\r\n\t\t\t\"classificationName\": \"水果类\",\r\n\t\t\t\"classificationTime\": 1687423087000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 85427,\r\n\t\t\t\"number\": 65,\r\n\t\t\t\"productName\": \"纸片\",\r\n\t\t\t\"productNumber\": 65,\r\n\t\t\t\"productClassificationId\": \"1\",\r\n\t\t\t\"productStash\": \"2\",\r\n\t\t\t\"productTime\": 1687744264000,\r\n\t\t\t\"productSpecification\": 0.001,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 1,\r\n\t\t\t\"classificationName\": \"其他类\",\r\n\t\t\t\"classificationTime\": 1686904662000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 23336,\r\n\t\t\t\"number\": 15,\r\n\t\t\t\"productName\": \"塑料盒\",\r\n\t\t\t\"productNumber\": 15,\r\n\t\t\t\"productClassificationId\": \"1\",\r\n\t\t\t\"productStash\": \"2\",\r\n\t\t\t\"productTime\": 1687744286000,\r\n\t\t\t\"productSpecification\": 0.001,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 1,\r\n\t\t\t\"classificationName\": \"其他类\",\r\n\t\t\t\"classificationTime\": 1686904662000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 76655,\r\n\t\t\t\"number\": 10,\r\n\t\t\t\"productName\": \"垃圾桶\",\r\n\t\t\t\"productNumber\": 10,\r\n\t\t\t\"productClassificationId\": \"1\",\r\n\t\t\t\"productStash\": \"2\",\r\n\t\t\t\"productTime\": 1687744304000,\r\n\t\t\t\"productSpecification\": 0.01,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 1,\r\n\t\t\t\"classificationName\": \"其他类\",\r\n\t\t\t\"classificationTime\": 1686904662000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 54314,\r\n\t\t\t\"number\": 50,\r\n\t\t\t\"productName\": \"电脑\",\r\n\t\t\t\"productNumber\": 50,\r\n\t\t\t\"productClassificationId\": \"7\",\r\n\t\t\t\"productStash\": \"2\",\r\n\t\t\t\"productTime\": 1687744348000,\r\n\t\t\t\"productSpecification\": 1,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 7,\r\n\t\t\t\"classificationName\": \"电子类\",\r\n\t\t\t\"classificationTime\": 1686706332000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 68325,\r\n\t\t\t\"number\": 50,\r\n\t\t\t\"productName\": \"平板电脑\",\r\n\t\t\t\"productNumber\": 50,\r\n\t\t\t\"productClassificationId\": \"7\",\r\n\t\t\t\"productStash\": \"2\",\r\n\t\t\t\"productTime\": 1687744360000,\r\n\t\t\t\"productSpecification\": 0.01,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 7,\r\n\t\t\t\"classificationName\": \"电子类\",\r\n\t\t\t\"classificationTime\": 1686706332000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 15716,\r\n\t\t\t\"number\": 100,\r\n\t\t\t\"productName\": \"键盘\",\r\n\t\t\t\"productNumber\": 100,\r\n\t\t\t\"productClassificationId\": \"7\",\r\n\t\t\t\"productStash\": \"2\",\r\n\t\t\t\"productTime\": 1687744375000,\r\n\t\t\t\"productSpecification\": 0.01,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 7,\r\n\t\t\t\"classificationName\": \"电子类\",\r\n\t\t\t\"classificationTime\": 1686706332000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 63476,\r\n\t\t\t\"number\": 100,\r\n\t\t\t\"productName\": \"鼠标\",\r\n\t\t\t\"productNumber\": 100,\r\n\t\t\t\"productClassificationId\": \"7\",\r\n\t\t\t\"productStash\": \"2\",\r\n\t\t\t\"productTime\": 1687744421000,\r\n\t\t\t\"productSpecification\": 0.01,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 7,\r\n\t\t\t\"classificationName\": \"电子类\",\r\n\t\t\t\"classificationTime\": 1686706332000\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"stashId\": 2,\r\n\t\t\t\"productId\": 78345,\r\n\t\t\t\"number\": 24,\r\n\t\t\t\"productName\": \"苏打水\",\r\n\t\t\t\"productNumber\": 24,\r\n\t\t\t\"productClassificationId\": \"3\",\r\n\t\t\t\"productStash\": \"2\",\r\n\t\t\t\"productTime\": 1687744451000,\r\n\t\t\t\"productSpecification\": 0.01,\r\n\t\t\t\"stashName\": \"二号仓\",\r\n\t\t\t\"stashTotalCapacity\": 100000,\r\n\t\t\t\"stashCapacity\": 64.4,\r\n\t\t\t\"classificationId\": 3,\r\n\t\t\t\"classificationName\": \"饮料类\",\r\n\t\t\t\"classificationTime\": 1686579742000\r\n\t\t}\r\n\t],\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"},{"local_target_id":"5bef8ab1-265f-4e1b-b28d-12b0e677e337","local_parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583","name":"每月出库入库数量统计","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":15,"create_dtime":1687756445,"update_dtime":1688107082,"local_server_id":"","target_id":"5bef8ab1-265f-4e1b-b28d-12b0e677e337","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-26 13:14:05","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"95015458-0dd5-442b-825d-8a388708611d","request":{"url":"http:\/\/localhost:8080\/Stash\/General\/StorageSelectTime","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"storageTime\":\"1682870400000\",\r\n    \"storageStashId\" :2\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/General\/StorageSelectTime"},"response":{"success":{"raw":"{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": [\r\n\t\t{\r\n\t\t\t\"storageId\": 61,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": \"2\",\r\n\t\t\t\"storageTime\": 1687655718000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 1,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 78117\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 62,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": \"2\",\r\n\t\t\t\"storageTime\": 1687655741000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.1,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 52154\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 63,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": \"2\",\r\n\t\t\t\"storageTime\": 1687655745000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.01,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 56523\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 64,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": \"2\",\r\n\t\t\t\"storageTime\": 1687655748000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 89,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": \"2\",\r\n\t\t\t\"storageTime\": 1687662023000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 2,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 92,\r\n\t\t\t\"storageName\": \"樱桃\",\r\n\t\t\t\"storageAdminId\": \"2\",\r\n\t\t\t\"storageTime\": 1687662087000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 10,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 87343\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 95,\r\n\t\t\t\"storageName\": \"西瓜\",\r\n\t\t\t\"storageAdminId\": \"2\",\r\n\t\t\t\"storageTime\": 1687744154000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 20,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 36672\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 96,\r\n\t\t\t\"storageName\": \"芒果\",\r\n\t\t\t\"storageAdminId\": \"2\",\r\n\t\t\t\"storageTime\": 1687744197000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 2,\r\n\t\t\t\"storageNumber\": 35,\r\n\t\t\t\"storageVolume\": 0.01,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 31154\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 97,\r\n\t\t\t\"storageName\": \"纸片\",\r\n\t\t\t\"storageAdminId\": \"1\",\r\n\t\t\t\"storageTime\": 1687744264000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 1,\r\n\t\t\t\"storageNumber\": 65,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 85427\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 98,\r\n\t\t\t\"storageName\": \"塑料盒\",\r\n\t\t\t\"storageAdminId\": \"1\",\r\n\t\t\t\"storageTime\": 1687744286000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 1,\r\n\t\t\t\"storageNumber\": 15,\r\n\t\t\t\"storageVolume\": 0.001,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 23336\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 100,\r\n\t\t\t\"storageName\": \"电脑\",\r\n\t\t\t\"storageAdminId\": \"1\",\r\n\t\t\t\"storageTime\": 1687744348000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 7,\r\n\t\t\t\"storageNumber\": 50,\r\n\t\t\t\"storageVolume\": 1,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 54314\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 101,\r\n\t\t\t\"storageName\": \"平板电脑\",\r\n\t\t\t\"storageAdminId\": \"1\",\r\n\t\t\t\"storageTime\": 1687744360000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 7,\r\n\t\t\t\"storageNumber\": 50,\r\n\t\t\t\"storageVolume\": 0.01,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 68325\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 102,\r\n\t\t\t\"storageName\": \"键盘\",\r\n\t\t\t\"storageAdminId\": \"1\",\r\n\t\t\t\"storageTime\": 1687744375000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 7,\r\n\t\t\t\"storageNumber\": 100,\r\n\t\t\t\"storageVolume\": 0.01,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 15716\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 103,\r\n\t\t\t\"storageName\": \"鼠标\",\r\n\t\t\t\"storageAdminId\": \"3\",\r\n\t\t\t\"storageTime\": 1687744421000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 7,\r\n\t\t\t\"storageNumber\": 100,\r\n\t\t\t\"storageVolume\": 0.01,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 63476\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"storageId\": 104,\r\n\t\t\t\"storageName\": \"苏打水\",\r\n\t\t\t\"storageAdminId\": \"3\",\r\n\t\t\t\"storageTime\": 1687744451000,\r\n\t\t\t\"storageStashId\": 2,\r\n\t\t\t\"storageClassificationId\": 3,\r\n\t\t\t\"storageNumber\": 24,\r\n\t\t\t\"storageVolume\": 0.01,\r\n\t\t\t\"storageState\": 1,\r\n\t\t\t\"storageProductId\": 78345\r\n\t\t}\r\n\t],\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"bf81f7ca-1b42-42e6-a08d-a75cfeb34583"}]},{"local_target_id":"33b17c7d-52d8-4ded-951d-31012fd25e82","local_parent_id":"0","name":"管理员接口","method":"POST","mark":"developing","is_doc":0,"target_type":"folder","example_type":"0","project_id":3079203,"status":1,"sort":2,"create_dtime":1686194567,"update_dtime":1686194567,"local_server_id":"","target_id":"33b17c7d-52d8-4ded-951d-31012fd25e82","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-08 11:22:47","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"script":{"pre_script":"","test":"","pre_script_switch":1,"test_switch":1},"request":{"description":"管理员自身的一些操作","header":[],"query":[],"body":[],"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}}},"parent_id":"0","children":[{"local_target_id":"a5472867-b142-43ba-a9e9-35fdabde407a","local_parent_id":"33b17c7d-52d8-4ded-951d-31012fd25e82","name":"分类目录管理","method":"POST","mark":"developing","is_doc":0,"target_type":"folder","example_type":"0","project_id":3079203,"status":1,"sort":0,"create_dtime":1686722786,"update_dtime":1686722786,"local_server_id":"","target_id":"a5472867-b142-43ba-a9e9-35fdabde407a","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-14 14:06:26","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"script":{"pre_script":"","test":"","pre_script_switch":1,"test_switch":1},"request":{"description":"","header":[],"query":[],"body":[],"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}}},"parent_id":"33b17c7d-52d8-4ded-951d-31012fd25e82","children":[{"local_target_id":"a03852dc-149a-4957-87ca-a61638d92c63","local_parent_id":"a5472867-b142-43ba-a9e9-35fdabde407a","name":"根据分类id删除分类","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":0,"create_dtime":1688107120,"update_dtime":1688108668,"local_server_id":"","target_id":"a03852dc-149a-4957-87ca-a61638d92c63","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-30 14:38:40","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"791661b1-b536-4cd0-9904-d1e3d520ee90","request":{"url":"http:\/\/localhost:8080\/Stash\/Admin\/DeleteClass","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"classificationId\":2\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/Admin\/DeleteClass"},"response":{"success":{"raw":"{\r\n\t\"message\": \"删除成功\",\r\n\t\"data\": null,\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"有商品归属该分类因此无法删除\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n}","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"a5472867-b142-43ba-a9e9-35fdabde407a"},{"local_target_id":"0cad6513-87fb-4a68-9a04-9d0d40ba784c","local_parent_id":"a5472867-b142-43ba-a9e9-35fdabde407a","name":"根据分类名称精准查询商品","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":1,"create_dtime":1686708081,"update_dtime":1686793685,"local_server_id":"","target_id":"0cad6513-87fb-4a68-9a04-9d0d40ba784c","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-14 10:01:21","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"2cdabfc0-6f9b-42e0-af6f-076bdb5cda1a","request":{"url":"http:\/\/localhost:8080\/Stash\/Admin\/classificationSelectName","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n        \"classificationName\": \"药品\"\r\n}","raw_para":[{"key":"classificationName","value":"药类品","description":"分类名称","not_null":1,"field_type":"String","type":"Text","is_checked":1}]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/Admin\/classificationSelectName"},"response":{"success":{"raw":"{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": {\r\n\t\t\"classificationId\": 6,\r\n\t\t\"classificationName\": \"药品类\",\r\n\t\t\"classificationTime\": 1686704178000\r\n\t},\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"查询失败\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n}","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"a5472867-b142-43ba-a9e9-35fdabde407a"},{"local_target_id":"f8e25b31-4d12-4a3d-8d00-622ad3ff6767","local_parent_id":"a5472867-b142-43ba-a9e9-35fdabde407a","name":"添加商品分类","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":2,"create_dtime":1686561901,"update_dtime":1688108003,"local_server_id":"","target_id":"f8e25b31-4d12-4a3d-8d00-622ad3ff6767","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-12 17:25:01","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"a80e64da-1971-4f43-b850-e8c0cc32345c","request":{"url":"http:\/\/localhost:8080\/Stash\/Admin\/classificationAdd","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"classificationName\":\"测试\"\r\n}","raw_para":[{"key":"classificationName","value":"药品类","description":"分类名称","not_null":1,"field_type":"String","type":"Text","is_checked":1}]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/Admin\/classificationAdd"},"response":{"success":{"raw":"{\r\n\t\"message\": \"添加成功\",\r\n\t\"data\": null,\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"[\r\n\t{\r\n\t\t\"message\": \"分类名重复\",\r\n\t\t\"data\": null,\r\n\t\t\"code\": 201\r\n\t},\r\n\t{\r\n\t\t\"message\": \"分类数量到达上线\",\r\n\t\t\"data\": null,\r\n\t\t\"code\": 201\r\n\t}\r\n]","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"a5472867-b142-43ba-a9e9-35fdabde407a"},{"local_target_id":"4037cbba-fa16-4caf-aa5e-448f89de1e40","local_parent_id":"a5472867-b142-43ba-a9e9-35fdabde407a","name":"根据分类id修改分类名称","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":3,"create_dtime":1686721257,"update_dtime":1686793683,"local_server_id":"","target_id":"4037cbba-fa16-4caf-aa5e-448f89de1e40","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-14 13:40:57","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"09c71df4-82e8-4f56-8df4-acd4b3b915ec","request":{"url":"http:\/\/localhost:8080\/Stash\/Admin\/classificationUpdateName","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n        \"classificationId\": 1,\r\n        \"classificationName\": \"药品\"\r\n}","raw_para":[{"key":"classificationId","value":"1","description":"分类id","not_null":1,"field_type":"Integer","type":"Text","is_checked":1},{"key":"classificationName","value":"药品","description":"分类名称","not_null":1,"field_type":"String","type":"Text","is_checked":1}]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/Admin\/classificationUpdateName"},"response":{"success":{"raw":"{\r\n\t\"message\": \"修改成功\",\r\n\t\"data\": null,\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"该分类名称存在，请勿重复添加\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n}","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"a5472867-b142-43ba-a9e9-35fdabde407a"},{"local_target_id":"1e444c08-28eb-46ea-84ed-d2bd190a6307","local_parent_id":"a5472867-b142-43ba-a9e9-35fdabde407a","name":"分页查询所有分类","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":4,"create_dtime":1686559693,"update_dtime":1686722730,"local_server_id":"","target_id":"1e444c08-28eb-46ea-84ed-d2bd190a6307","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-12 16:48:13","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"bda2e56f-8041-4785-9933-71b7197a2d8a","request":{"url":"http:\/\/localhost:8080\/Stash\/Admin\/classificationLimit","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"pageIndex\":0,\r\n    \"pageSize\":10\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/Admin\/classificationLimit"},"response":{"success":{"raw":"{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": {\r\n\t\t\"total\": 2,\r\n\t\t\"Data\": [\r\n\t\t\t{\r\n\t\t\t\t\"classificationId\": 2,\r\n\t\t\t\t\"classificationName\": \"食物类\",\r\n\t\t\t\t\"classificationTime\": 1687423087000\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"classificationId\": 1,\r\n\t\t\t\t\"classificationName\": \"其他\",\r\n\t\t\t\t\"classificationTime\": 1686904662000\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"给予的参数存在漏洞\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n}","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"a5472867-b142-43ba-a9e9-35fdabde407a"}]},{"local_target_id":"87c5b105-4f44-4cbe-a6c0-d56588237e54","local_parent_id":"33b17c7d-52d8-4ded-951d-31012fd25e82","name":"仓库管理","method":"POST","mark":"developing","is_doc":0,"target_type":"folder","example_type":"0","project_id":3079203,"status":1,"sort":1,"create_dtime":1686733115,"update_dtime":1686733115,"local_server_id":"","target_id":"87c5b105-4f44-4cbe-a6c0-d56588237e54","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-14 16:58:35","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"script":{"pre_script":"","test":"","pre_script_switch":1,"test_switch":1},"request":{"description":"","header":[],"query":[],"body":[],"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}}},"parent_id":"33b17c7d-52d8-4ded-951d-31012fd25e82","children":[{"local_target_id":"8503b7d6-4885-4994-be31-1e7d99212ee7","local_parent_id":"87c5b105-4f44-4cbe-a6c0-d56588237e54","name":"查询所有仓库","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":0,"create_dtime":1686722736,"update_dtime":1686722812,"local_server_id":"","target_id":"8503b7d6-4885-4994-be31-1e7d99212ee7","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-14 14:05:36","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"b210c041-9de6-4543-bd58-cfff982e98f0","request":{"url":"http:\/\/localhost:8080\/Stash\/Admin\/StashSelectAll","description":"","body":{"mode":"json","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/Admin\/StashSelectAll"},"response":{"success":{"raw":"{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": [],\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"87c5b105-4f44-4cbe-a6c0-d56588237e54"},{"local_target_id":"18d7d94e-7330-44b0-a7aa-29f0273b801c","local_parent_id":"87c5b105-4f44-4cbe-a6c0-d56588237e54","name":"根据id修改仓库信息","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":1,"create_dtime":1686730001,"update_dtime":1686730113,"local_server_id":"","target_id":"18d7d94e-7330-44b0-a7aa-29f0273b801c","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-14 16:06:41","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"6d92a78d-c645-4bc9-b5fb-e8ac4116f9d6","request":{"url":"http:\/\/localhost:8080\/Stash\/Admin\/stashUpdateInformation","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"stashName\":\"一号仓\",\r\n    \"stashTotalCapacity\":1000000,\r\n    \"stashId\":4\r\n}","raw_para":[{"key":"stashName","value":"一号仓","description":"仓库名称","not_null":1,"field_type":"String","type":"Text","is_checked":1},{"key":"stashTotalCapacity","value":"1000000","description":"仓库总容量","not_null":1,"field_type":"Integer","type":"Text","is_checked":1},{"key":"stashId","value":"4","description":"仓库id","not_null":1,"field_type":"Integer","type":"Text","is_checked":1}]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/Admin\/stashUpdateInformation"},"response":{"success":{"raw":"{\r\n\t\"message\": \"修改成功\",\r\n\t\"data\": null,\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"数据出错，仓库总容量不能低于仓库使用容量\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n}","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"87c5b105-4f44-4cbe-a6c0-d56588237e54"},{"local_target_id":"4dc6d2ad-a79f-4c0f-a4a6-f30f818140d0","local_parent_id":"87c5b105-4f44-4cbe-a6c0-d56588237e54","name":"添加仓库","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":2,"create_dtime":1686724709,"update_dtime":1686727279,"local_server_id":"","target_id":"4dc6d2ad-a79f-4c0f-a4a6-f30f818140d0","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-14 14:38:29","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"348715a5-8c65-4dcf-8d4d-70424323b9ea","request":{"url":"http:\/\/localhost:8080\/Stash\/Admin\/StashAdd","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"stashName\":\"一号仓\",\r\n    \"stashTotalCapacity\":1000000\r\n}","raw_para":[{"key":"stashName","value":"一号仓","description":"仓库名称","not_null":1,"field_type":"String","type":"Text","is_checked":1},{"key":"stashTotalCapacity","value":"1000000","description":"仓库时间","not_null":1,"field_type":"Integer","type":"Text","is_checked":1}]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/Admin\/StashAdd"},"response":{"success":{"raw":"{\r\n\t\"message\": \"添加成功\",\r\n\t\"code\": 200,\r\n\t\"data\": []\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"存在相同的仓库名\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n}","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"87c5b105-4f44-4cbe-a6c0-d56588237e54"}]},{"local_target_id":"f9307ee5-9b39-4b2d-ad3b-2b13d719e9ff","local_parent_id":"33b17c7d-52d8-4ded-951d-31012fd25e82","name":"分页查询所有管理员，不包含超级管理员","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":2,"create_dtime":1686733024,"update_dtime":1686740745,"local_server_id":"","target_id":"f9307ee5-9b39-4b2d-ad3b-2b13d719e9ff","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-14 16:57:04","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"07b99759-e5a6-4923-944d-02d2d0e808c7","request":{"url":"http:\/\/localhost:8080\/Stash\/Admin\/AdminSelectLimit","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"pageIndex\":0,\r\n    \"pageSize\":10\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/Admin\/AdminSelectLimit"},"response":{"success":{"raw":"{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": {\r\n\t\t\"Total\": 1,\r\n\t\t\"Data\": [\r\n\t\t\t{\r\n\t\t\t\t\"adminId\": 2,\r\n\t\t\t\t\"adminName\": \"普通管理员\",\r\n\t\t\t\t\"adminPhone\": \"16585421541\",\r\n\t\t\t\t\"adminAuthority\": 2,\r\n\t\t\t\t\"adminPassword\": \"111111\",\r\n\t\t\t\t\"adminLeave\": 1\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"数据出错，当前页面参数值不能小于零\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n}","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"33b17c7d-52d8-4ded-951d-31012fd25e82"},{"local_target_id":"354f3839-8aa1-4589-bde9-9103f2c30cc8","local_parent_id":"33b17c7d-52d8-4ded-951d-31012fd25e82","name":"员工离职","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":3,"create_dtime":1686740944,"update_dtime":1686741303,"local_server_id":"","target_id":"354f3839-8aa1-4589-bde9-9103f2c30cc8","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-14 19:09:04","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"5135c489-edca-41e3-9e0a-29adf0ac0af3","request":{"url":"http:\/\/localhost:8080\/Stash\/Admin\/AdminUpdate","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"adminId\":7\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/Admin\/AdminUpdate"},"response":{"success":{"raw":"{\r\n\t\"message\": \"修改成功\",\r\n\t\"data\": null,\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"id\/手机号不存在\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n}","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"33b17c7d-52d8-4ded-951d-31012fd25e82"},{"local_target_id":"90674e5d-24e5-406f-872e-d7bdcf74be2f","local_parent_id":"33b17c7d-52d8-4ded-951d-31012fd25e82","name":"添加新员工","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":4,"create_dtime":1686742502,"update_dtime":1686743078,"local_server_id":"","target_id":"90674e5d-24e5-406f-872e-d7bdcf74be2f","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-14 19:35:02","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"48d28c75-7983-4de5-abf3-61e4cbe5dab6","request":{"url":"http:\/\/localhost:8080\/Stash\/Admin\/AdminAdd","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"adminName\":\"3号管理员\",\r\n    \"adminPhone\":\"17827322122\"\r\n\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/Admin\/AdminAdd"},"response":{"success":{"raw":"{\r\n\t\"message\": \"添加成功\",\r\n\t\"data\": null,\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"该手机号已存在，请勿重复添加\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n}","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"33b17c7d-52d8-4ded-951d-31012fd25e82"},{"local_target_id":"7704e430-16f2-48c3-8fcb-1c7ec2182020","local_parent_id":"33b17c7d-52d8-4ded-951d-31012fd25e82","name":"根据手机号或或者id查询员工","method":"POST","mark":"developing","is_doc":0,"target_type":"api","example_type":"0","project_id":"84a166ee-95c5-4e4a-8bfa-3caddfd07c0f","status":1,"sort":5,"create_dtime":1686744047,"update_dtime":1686793674,"local_server_id":"","target_id":"7704e430-16f2-48c3-8fcb-1c7ec2182020","modifier_id":"U36NXE820768","extend_server_id":"","create_time":"2023-06-14 20:00:47","create_users":{"create_user":"阿尔刻","update_user":"阿尔刻"},"color":"#3A86FF","attribute_lists":[],"enable_server_mock":-1,"mock_server_url":"","mock_url":"","new_target_id":"dd109509-1ab3-4b61-b5d7-e9b2c57b2588","request":{"url":"http:\/\/localhost:8080\/Stash\/Admin\/AdminSelect","description":"","body":{"mode":"json","parameter":[],"raw":"{\r\n    \"adminPhone\":18565889721\r\n}","raw_para":[]},"event":{"pre_script":"","test":""},"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","app":"","delegation":"","timestamp":"","includePayloadHash":-1},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":-1},"ntlm":{"username":"","password":"","domain":"","workstation":"","disableRetryRequest":1},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"","addEmptyParamsToSign":-1,"includeBodyHash":-1,"addParamsToHeader":-1,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""}},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"origin_url":"http:\/\/localhost:8080\/Stash\/Admin\/AdminSelect"},"response":{"success":{"raw":"{\r\n\t\"message\": \"查询成功\",\r\n\t\"data\": {\r\n\t\t\"adminId\": 2,\r\n\t\t\"adminName\": \"普通管理员\",\r\n\t\t\"adminPhone\": \"16585421541\",\r\n\t\t\"adminAuthority\": 2,\r\n\t\t\"adminPassword\": \"111111\",\r\n\t\t\"adminLeave\": 2\r\n\t},\r\n\t\"code\": 200\r\n}","parameter":[],"expect":{"name":"成功","isDefault":1,"code":200,"contentType":"json","verifyType":"schema","schema":[],"mock":""}},"error":{"raw":"{\r\n\t\"message\": \"查询员工不存在\",\r\n\t\"data\": null,\r\n\t\"code\": 201\r\n}","parameter":[],"expect":{"name":"失败","isDefault":-1,"code":404,"contentType":"json","verifyType":"schema","schema":[],"mock":""}}},"parent_id":"33b17c7d-52d8-4ded-951d-31012fd25e82"}]}]}};
        apipostData = apipostData.data;
        consoleLog('apipostData ---- ',apipostData);
    } catch (e) { }

    if (!_.isEmpty(apipostData)) {
        if (!_.isArray(apipostData.children)) {
            apipostData.children = [];
        }

        // 导航菜单
        apipostData.children = sortData(apipostData.children, 'ascending');

        // 数据词典（对象，键为target_id）
        const dataDB = {};
        const ruleType = (data) => {
            const d = Object.prototype.toString.call(data);
            return d.substr(8, d.length - 9);
        };

        const renderListtoObject = (List) => {
            if (ruleType(List) === 'Array') {
                List &&
                List.forEach((item) => {
                    if (item.children) {
                        renderListtoObject(item.children);
                        dataDB[item.target_id] = item;
                    } else {
                        dataDB[item.target_id] = item;
                    }
                });
            }
        };

        // 搜索
        $(document).on('input', 'input[name="search-input"]', function () {
            let keyword = _.toLower($(this).val());
            let searchResult = [];

            if (keyword == '') {
                $('.apipost-left-nav-template').find('li').removeClass('is-search-hidden search-toggle');
            } else {

                if (_.isObject(dataDB) && !_.isEmpty(dataDB)) {
                    _.forEach(dataDB, function (item) {
                        consoleLog(_.toLower(item.name), keyword, _.toLower(item.name).indexOf(keyword))
                        if (_.toLower(item.url).indexOf(keyword) > -1 || _.toLower(item.name).indexOf(keyword) > -1 || _.toLower(item.method).indexOf(keyword) > -1) {
                            searchResult.push(item.target_id);
                        }
                    });

                    if (searchResult.length == 0) {
                        $('.apipost-left-nav-template').find('li').addClass('is-search-hidden');
                    } else {
                        searchResult.forEach(target_id => {
                            searchResult = _.concat(searchResult, getParentTargetIDs(Object.values(dataDB), target_id));
                        })
                    }

                    // 隐藏其他
                    _.difference(Object.keys(dataDB), searchResult).forEach(hidden_target_id => {
                        $(`.apipost-left-nav-template li[data-target_id="${hidden_target_id}"]`).addClass('is-search-hidden');
                        $(`.apipost-left-nav-template li[data-target_id="${hidden_target_id}"][data-type="folder"]`).addClass('search-toggle');
                    })

                    // 展示结果
                    searchResult.forEach(show_target_id => {
                        $(`.apipost-left-nav-template li[data-target_id="${show_target_id}"]`).removeClass('is-search-hidden is-hidden search-toggle');
                        $(`.apipost-left-nav-template li[data-target_id="${show_target_id}"][data-type="folder"]`).removeClass('search-toggle');
                    })
                }
            }
        })

        renderListtoObject(apipostData.children);

        // 获取当前的target_id
        let _target_id = '001';
        const _urlParas = GetUrlQuery();

        if (_.isObject(_urlParas) && _.isString(_urlParas.target_id)) {
            _target_id = _urlParas.target_id;
        }

        // 修改地址栏
        function changeURLStatic(name, value) {
            const url = changeURLParam(location.href, name, value); // 修改 URL 参数
            history.replaceState(null, null, url); // 替换地址栏
        }

        function changeURLParam(url, name, value) {
            const reg = eval(`/([?|&]${name}=)[^&]*/gi`);
            value = value.toString().replace(/(^\s*)|(\s*$)/g, ''); // 移除首尾空格
            let url2;
            if (!value) {
                // remove
                url2 = url.replace(reg, '');
            } else if (url.match(reg)) {
                // edit
                url2 = url.replace(reg, `$1${value}`);
            } else {
                // add
                url2 = `${url + (url.indexOf('?') > -1 ? '&' : '?') + name}=${value}`;
            }
            return url2;
        }

        // 格式化内容
        function formatJson(json) {
            // consoleLog(json, apipostData);

            // name
            if (json.target_type == 'global') {
                _.set(json, 'name', '全局公共参数');
            }

            // mark
            if (_.has(apipostData, 'project.vars.mark') && _.isArray(apipostData.project.vars.mark)) {
                const _markedObj = {};
                apipostData.project.vars.mark.forEach((item) => {
                    _markedObj[item.key] = item;
                });

                if (_.isObject(_markedObj[json.mark])) {
                    _.set(json, 'formatMark', _markedObj[json.mark]);
                }
            }

            // time
            if (_.isNumber(json.create_dtime)) {
                if (String(json.create_dtime).length == 10) {
                    _.set(
                        json,
                        'format_create_dtime',
                        dayjs.unix(json.create_dtime).format('YYYY-MM-DD HH:mm:ss')
                    );
                }

                if (String(json.create_dtime).length == 13) {
                    _.set(json, 'format_create_dtime', dayjs(json.create_dtime).format('YYYY-MM-DD HH:mm:ss'));
                }
            } else {
                if (_.isString(json.create_dtime)) {
                    _.set(json, 'format_create_dtime', json.create_dtime);
                } else {
                    _.set(json, 'format_create_dtime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
                }
            }

            if (_.isNumber(json.update_dtime)) {
                if (String(json.update_dtime).length == 10) {
                    _.set(
                        json,
                        'format_update_dtime',
                        dayjs.unix(json.update_dtime).format('YYYY-MM-DD HH:mm:ss')
                    );
                }

                if (String(json.update_dtime).length == 13) {
                    _.set(json, 'format_update_dtime', dayjs(json.update_dtime).format('YYYY-MM-DD HH:mm:ss'));
                }
            } else {
                if (_.isString(json.update_dtime)) {
                    _.set(json, 'format_update_dtime', json.update_dtime);
                } else {
                    _.set(json, 'format_update_dtime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
                }
            }

            // formatMode
            if (_.has(json, 'request.body.mode')) {
                switch (json.request.body.mode) {
                    case 'none':
                        break;
                    case 'form-data':
                        _.set(json, 'request.body.formatMode', 'multipart/form-data');
                        break;
                    case 'urlencoded':
                        _.set(json, 'request.body.formatMode', 'application/x-www-form-urlencoded');
                        break;
                    case 'json':
                        _.set(json, 'request.body.formatMode', 'application/json');
                        break;
                    case 'xml':
                        _.set(json, 'request.body.formatMode', 'application/xml');
                        break;
                    case 'javascript':
                        _.set(json, 'request.body.formatMode', 'application/javascript');
                        break;
                    case 'plain':
                        _.set(json, 'request.body.formatMode', 'text/plain');
                        break;
                    case 'html':
                        _.set(json, 'request.body.formatMode', 'text/html');
                        break;
                }
            }

            if(_.has(json, 'request.auth.type')) {
                switch (json.request.auth.type) {
                    case 'noauth':
                        _.set(json, 'request.authType', '无需认证');
                        break;
                    case 'awsv4':
                        _.set(json, 'request.authType', 'AWS Signature');
                        break;
                    case 'basic':
                        _.set(json, 'request.authType', 'Basic auth');
                        break;
                    case 'bearer':
                        _.set(json, 'request.authType', 'Bearer auth');
                        break;
                    case 'digest':
                        _.set(json, 'request.authType', 'Digest auth');
                        break;
                    case 'edgegrid':
                        _.set(json, 'request.authType', 'Akamai EdgeGrid');
                        break;
                    case 'hawk':
                        _.set(json, 'request.authType', 'Hawk authentication');
                        break;
                    case 'kv':
                        _.set(json, 'request.authType', '私密键值对');
                        break;
                    case 'ntlm':
                        _.set(json, 'request.authType', 'NTLM Authentication');
                        break;
                    case 'oauth1':
                        _.set(json, 'request.authType', 'OAuth 1.0');
                        break;
                }
            }

            json.url = json.request.url;
            return json;
        }

        // 加载当前数据
        function loadData(_target_id,dataDB) {

            // 获取当前的数据信息
            let _targetData = {};

            // 右侧浮动导航
            let floatNavs = [];

            if(_target_id == '001'){
                if (_.isObject(dataDB[_target_id])) {
                    _targetData = _.cloneDeep(dataDB[_target_id]);
                } else if (
                    _.has(apipostData, 'project.vars.request') &&
                    _.isObject(apipostData.project.vars.request)
                ) {
                    _targetData = {
                        target_type: 'global',
                        request: apipostData.project.vars.request,
                        script: apipostData.project.vars.script,
                    };
                } else {
                    _targetData = {
                        target_type: 'none',
                        request: {},
                    };
                }

                _targetData = formatJson(_targetData);

                $('.apipost-doc-body-nav-list').find('li').removeClass('active');
                $('.apipost-doc-body-nav-list')
                    .find(`li[data-target_id="${_target_id}"]`)
                    .eq(0)
                    .addClass('active')
                    .toggleClass('toggle search-toggle');

                // const children_ids = getChildrenTargetIDs(Object.values(dataDB), _target_id);
                //
                // if (_.isArray(children_ids)) {
                //     if (
                //         $('.apipost-doc-body-nav-list')
                //             .find(`li[data-target_id="${_target_id}"]`)
                //             .eq(0)
                //             .hasClass('toggle')
                //     ) {
                //         children_ids.forEach((target_id) => {
                //             if ($(`li[data-target_id="${target_id}"]`).attr('data-type') == 'folder') {
                //                 $(`li[data-target_id="${target_id}"]`).addClass('is-hidden toggle');
                //             } else {
                //                 $(`li[data-target_id="${target_id}"]`).addClass('is-hidden');
                //             }
                //         });
                //     } else {
                //         children_ids.forEach((target_id) => {
                //             if ($(`li[data-target_id="${target_id}"]`).attr('data-type') == 'folder') {
                //                 $(`li[data-target_id="${target_id}"]`).removeClass('is-hidden toggle');
                //             } else {
                //                 $(`li[data-target_id="${target_id}"]`).removeClass('is-hidden');
                //             }
                //         });
                //     }
                // }

                _targetData.copyData = JSON.parse(JSON.stringify(_targetData));
                if(_targetData.copyData.target_type == 'example'){
                    _targetData.copyData.target_type = _targetData.copyData.example_type;
                }

                // 加载左侧内容
                const _docContentHtml = template('apipost-doc-wrap-tpl', {
                    data: _targetData,
                    target_id: _target_id,
                });

                $('.apipost-doc-wrap').html(_docContentHtml);

                // 右侧浮动导航
                floatNavs = [];
                $('.apipost-doc-wrap').find('h3 ,h4, h5, h6, h7').each((i, item) => {
                    let text = $(item).attr('data-text');
                    let id = $(item).attr('id');
                    if (text) {
                        floatNavs.push({
                            text, id,
                            name: $(item).prop("tagName"),
                            indent: $(item).prop("tagName").replace(/[^0-9]/ig, "") - 2,
                        })
                    }
                })

                const _floatNavs = template('apipost-float-nav-template-tpl', {
                    list: floatNavs
                });

                $('.apipost-float-nav-template').html(_floatNavs);

                // 请求body raw 参数
                try {
                    if (_targetData.target_type == 'grpc' || _targetData.example_type == 'grpc') {
                        $('.request-body-raw-editor-json').each((i, item) => {
                            let val = $(item).prev('input').val();

                            if(val){
                                new JsonEditor(
                                    `#${$(item).attr('id')}`,
                                    JSON5.parse(val),
                                    {},
                                    []
                                ).load(JSON5.parse(val), []);
                            }
                        })
                    }

                    if (_targetData.target_type == 'api' || _targetData.example_type == 'api') {
                        let obj = [];
                        if (_.has(_targetData, 'request.body.raw_para')) {
                            obj = _targetData.request.body.raw_para.map((itemRaw) => {
                                const arr = itemRaw.key.split('.');
                                itemRaw.newKey = arr[arr.length - 1];
                                return itemRaw;
                            });
                        }

                        if($('#request-body-raw-editor-input').length > 0){
                            new JsonEditor('#request-body-raw-editor-json',
                                JSON5.parse($('#request-body-raw-editor-input').val()),
                                {},
                                obj
                            ).load(JSON5.parse($('#request-body-raw-editor-input').val()), obj);
                        }
                    }
                } catch (e) { }

                // 响应示例 raw 参数
                try {
                    _.forEach(_targetData.response, function (item, key) {
                        const obj = item.parameter.map((itemRaw) => {
                            const arr = itemRaw.key.split('.');
                            itemRaw.newKey = arr[arr.length - 1];
                            return itemRaw;
                        });

                        if($(`#response-raw-${key}-json-input`).length > 0){
                            new JsonEditor(`#response-raw-${key}-json`,
                                JSON5.parse($(`#response-raw-${key}-json-input`).val()),
                                {},
                                obj
                            ).load(JSON5.parse($(`#response-raw-${key}-json-input`).val()), obj);
                        }
                    });
                } catch (e) { }

                // 更新 url
                changeURLStatic('target_id', _target_id);

                // 优化 apipost-doc-paras 展示
                $('.apipost-doc-paras').each((i, item) => {
                    if ($(item).children().length == 0) {
                        let _id = $(item).attr('for-id');
                        let _title = $(`#${_id}`).attr('data-text');
                        let _tipDiv = `<div class="apipost-no-data">暂无${_title}数据</div>`;
                        $(item).append(_tipDiv)
                    }
                })
            }else {

                let newdata = Object.values(dataDB)
                // let LevelArr = []
                //
                // function levelTree(arr1, newarr) {
                //     arr1.forEach(item => {
                //         if (item.children && item.children.length > 0) {
                //             newarr.push(item)
                //             levelTree(item.children, newarr)
                //         } else {
                //             newarr.push(item)
                //         }
                //     })
                // }
                //
                // levelTree(newdata, LevelArr)

                newdata.forEach(item => {
                    if (item.local_target_id == _target_id) {

                        _targetData = formatJson(item);

                        $('.apipost-doc-body-nav-list').find('li').removeClass('active');
                        $('.apipost-doc-body-nav-list')
                            .find(`li[data-target_id="${_target_id}"]`)
                            .eq(0)
                            .addClass('active')
                            .toggleClass('toggle search-toggle');

                        const children_ids = getChildrenTargetIDs(Object.values(dataDB), _target_id);

                        if (_.isArray(children_ids)) {
                            if (
                                $('.apipost-doc-body-nav-list')
                                    .find(`li[data-target_id="${_target_id}"]`)
                                    .eq(0)
                                    .hasClass('toggle')
                            ) {
                                children_ids.forEach((target_id) => {
                                    if ($(`li[data-target_id="${target_id}"]`).attr('data-type') == 'folder') {
                                        $(`li[data-target_id="${target_id}"]`).addClass('is-hidden toggle');
                                    } else {
                                        $(`li[data-target_id="${target_id}"]`).addClass('is-hidden');
                                    }
                                });
                            } else {
                                children_ids.forEach((target_id) => {
                                    if ($(`li[data-target_id="${target_id}"]`).attr('data-type') == 'folder') {
                                        $(`li[data-target_id="${target_id}"]`).removeClass('is-hidden toggle');
                                    } else {
                                        $(`li[data-target_id="${target_id}"]`).removeClass('is-hidden');
                                    }
                                });
                            }
                        }

                        // 加载左侧内容
                        const _docContentHtml = template('apipost-doc-wrap-tpl', {
                            data: _targetData,
                            target_id: _target_id,
                        });

                        $('.apipost-doc-wrap').html(_docContentHtml);

                        // 右侧浮动导航
                        floatNavs = [];
                        $('.apipost-doc-wrap').find('h3 ,h4, h5, h6, h7').each((i, item) => {
                            let text = $(item).attr('data-text');
                            let id = $(item).attr('id');
                            if (text) {
                                floatNavs.push({
                                    text, id,
                                    name: $(item).prop("tagName"),
                                    indent: $(item).prop("tagName").replace(/[^0-9]/ig, "") - 2,
                                })
                            }
                        })

                        const _floatNavs = template('apipost-float-nav-template-tpl', {
                            list: floatNavs
                        });

                        $('.apipost-float-nav-template').html(_floatNavs);

                        // 请求body raw 参数
                        try {
                            if (_targetData.target_type == 'grpc' || _targetData.example_type == 'grpc') {
                                $('.request-body-raw-editor-json').each((i, item) => {
                                    let val = $(item).prev('input').val();

                                    if(val){
                                        new JsonEditor(
                                            `#${$(item).attr('id')}`,
                                            JSON5.parse(val),
                                            {},
                                            []
                                        ).load(JSON5.parse(val), []);
                                    }
                                })
                            }

                            if (_targetData.target_type == 'api' || _targetData.example_type == 'api') {
                                let obj = [];
                                if (_.has(_targetData, 'request.body.raw_para')) {
                                    obj = _targetData.request.body.raw_para.map((itemRaw) => {
                                        const arr = itemRaw.key.split('.');
                                        itemRaw.newKey = arr[arr.length - 1];
                                        return itemRaw;
                                    });
                                }

                                if($('#request-body-raw-editor-input').length > 0){
                                    new JsonEditor('#request-body-raw-editor-json',
                                        JSON5.parse($('#request-body-raw-editor-input').val()),
                                        {},
                                        obj
                                    ).load(JSON5.parse($('#request-body-raw-editor-input').val()), obj);
                                }
                            }
                        } catch (e) { }

                        // 响应示例 raw 参数
                        try {
                            _.forEach(_targetData.response, function (item, key) {
                                const obj = item.parameter.map((itemRaw) => {
                                    const arr = itemRaw.key.split('.');
                                    itemRaw.newKey = arr[arr.length - 1];
                                    return itemRaw;
                                });

                                if($(`#response-raw-${key}-json-input`).length > 0){
                                    new JsonEditor(`#response-raw-${key}-json`,
                                        JSON5.parse($(`#response-raw-${key}-json-input`).val()),
                                        {},
                                        obj
                                    ).load(JSON5.parse($(`#response-raw-${key}-json-input`).val()), obj);
                                }
                            });
                        } catch (e) { }
                        // 更新 url
                        changeURLStatic('target_id', _target_id);
                    }
                    // 优化 apipost-doc-paras 展示
                    $('.apipost-doc-paras').each((i, item) => {
                        if ($(item).children().length == 0) {
                            let _id = $(item).attr('for-id');
                            let _title = $(`#${_id}`).attr('data-text');
                            let _tipDiv = `<div class="apipost-no-data">暂无${_title}数据</div>`;
                            $(item).append(_tipDiv)
                        }
                    })
                })
            }

            // 折叠导航(移动端)
            $('.apipost-doc-body-nav,.apipost-doc-body-content').removeClass('open');

            $(document).on('scroll', function (e) {
                let currentNav= '';
                let scrollTop = $(document).scrollTop();

                floatNavs.forEach(item => {
                    if ($(`#${item.id}`).offset()) {
                        if ($(`#${item.id}`).offset().top > scrollTop && currentNav == '') {
                            currentNav = item.id
                            // console.log(currentNav)
                            $('.apipost-float-nav-template').find(`li[data-id="${currentNav}"]`).addClass('active').siblings().removeClass('active');
                        }
                    }
                })
                // console.log('请求参数:', $('#请求参数').offset().top, scrollTop)
            }).on('click', '.apipost-float-nav-template li', function(){
                $(this).addClass('active').siblings().removeClass('active');
            });

        }

        // 初始化左侧导航列表
        const _leftNavHtml = template('apipost-left-nav-template-tpl', {
            list: apipostData.children,
            target_id: _target_id,
        });

        $('.apipost-left-nav-template').html(_leftNavHtml);

        // 初始化项目公共信息
        $('title').text(`${apipostData.project_name} - Powered by Apipost V7`);
        $('.apipost-doc-body-nav-title').text(`${apipostData.project_name}`);

        // project-logo
        if (_.has(apipostData, 'project_logo') && apipostData.project_logo != '') {
            $('.project-logo').attr('src', apipostData.project_logo);
        }

        $('.project-logo').on('error', function () {
            $('.project-logo').attr('src', 'https://img.cdn.apipost.cn/docs/images7/logo.svg');
        });
        // consoleLog(apipostData)

        // 复制按钮
        const clipboard = new ClipboardJS('.copy-clipboard');
        clipboard.on('success', function (e) {
            $('.copy-clipboard-success').remove();
            $(e.trigger).append('<i class="copy-clipboard-success">复制成功</i>');
            e.clearSelection();
            $('.copy-clipboard-success').fadeOut(1000);
            setTimeout(function () {
                $('.copy-clipboard-success').remove();
            }, 1500);
        });

        clipboard.on('error', function (e) { });

        // 优化左侧菜单展示，默认收起
        // 获取当前的父ID
        let _target_parent_ids = getParentTargetIDs(Object.values(dataDB), _target_id);

        $('.apipost-left-nav-template').children('li').each((i, item) => {
            if ($(item).attr('data-type') == 'folder') {
                if (_target_parent_ids.indexOf($(item).attr('data-target_id')) == -1) {
                    $(item).addClass('toggle');
                } else {
                    $(item).removeClass('toggle');
                }
            }

            //if($(item).attr('data-type') != 'example') {
                if ($(item).attr('data-parent_id') != '0' && _target_parent_ids.indexOf($(item).attr('data-target_id')) == -1 && $(item).attr('data-target_id') != _target_id) {
                    $(item).addClass('is-hidden');
                } else {
                    $(item).removeClass('is-hidden');
                }
            //}
        })

        // 同级展示
        if (dataDB[_target_id]) {
            // $('.apipost-left-nav-template').children(`li[data-parent_id="${dataDB[_target_id].parent_id}"]`).removeClass('is-hidden');
            _target_parent_ids.forEach(_parent_id => {
                $('.apipost-left-nav-template').children(`li[data-parent_id="${_parent_id}"]`).removeClass('is-hidden');
            })
        }

        // alert(dataDB)
        // 加载单接口信息
        loadData(_target_id, dataDB);

        // 绑定事件
        $(document).on('click', '.mobile-nav-toggle-link-btn', function () { // 移动端导航
            $('.apipost-doc-body-nav,.apipost-doc-body-content').addClass('open');
        }).on('click', '.load-data-btn', function () { // 加载数据
            let target_id = $(this).attr('data-target_id');
            // let parent_id = $(this).attr('data-parent_id');
            // let target_type = $(this).attr('data-type');
            // let indent = $(this).attr('data-indent');

            // 加载单条数据
            loadData(target_id, dataDB);
        }).on('click', '.export-download-btn', function () { // 导出文档
            $(this).next('ul').toggleClass('is-hidden');
        })
    } else {
        // 空数据
        // consoleLog('null')
    }
</script>
<script>
    var _hmt = _hmt || [];
    (function () {
        var hm = document.createElement("script");
        hm.src = "https://hm.baidu.com/hm.js?a046ce178828e393614822a297b8d296";
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(hm, s);
    })();
</script>
</body>

</html>
